git - 让开发人员在提交之前 checkout (获取最新更改)

标签 git tfs version-control policy tfvc

TFS 中是否有一个选项可以让开发人员在提交之前获取最新更改?

我有一些开发人员不愿意更新(并检查他们的更改是否确实适用于当前版本),并且只是提交。通常会以这种方式破坏构建。

我们每 15 分钟进行一次 CI 构建,但这也与开发人员尽早使用其他开发人员的更改有关。

注意:我们正在考虑针对此问题切换到 git。

最佳答案

您可以将您的构建配置为真正的 CI 构建,尽管这不会阻止人们在获取最新版本之前 checkin 。它应该检测谁破坏了哪个构建。有些人甚至会配置门控构建,在没有通过构建的情况下甚至不 checkin 。我个人不喜欢这一点,因为它通常会大大减慢集成速度。

要捕获您想要捕获的案例,您可以实现自定义 checkin 策略,将其注册到 TF​​S 并将其安装到组织中的所有 Visual Studio 和 Team Explorer Everywhere 安装中。创建策略非常简单:

您必须构建两者,因为 checkin 策略的配置是通过 Visual Studio 进行的,并且需要 C# 实现。 基本上,您将查询本地工作区版本并将其与服务器上的最新工作区版本进行比较。 (可选)范围仅限于已更改的文件。然后,您的开发人员应该获取最新版本、重建、重新运行所有单元测试并尝试再次 checkin 。这可能会导致另一次冲突。

我在之前的一个非常相似的问题中撰写了有关此主题的更多指导。我怀疑你的问题比简单地检查工具更糟糕,这是一个人的问题,人们可能并不真正关心其他人在做什么,并且他们没有足够的沟通来预防此类冲突。

另请参阅:Avoid accidental overwrite between different developers upon checkin or merge

关于git - 让开发人员在提交之前 checkout (获取最新更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995687/

相关文章:

java - 你如何在 Windows 上 merge GIT?

git - 通过cURL删除Bitbucket存储库

git - 如何编辑 git merge 的提交消息

.net - 从 Sourcesafe 切换 - 在产品中寻找什么

visual-studio-2010 - Team Foundation Server 2010 是否可以与 Visual Studio 2010 ULTIMATE 一起使用?

svn - 颠覆 : How to merge only specific revisions into trunk when multiple consecutive changes are made in a branch?

git - 我如何通过电子邮件向某人发送 git 存储库?

tfs - 构建定义 : Error HRESULT E_FAIL has been returned from a call to a COM component

php - MySQL表的基本版本控制

git set-upstream-to=origin/master (远程的本地副本)