I've always worked with the Continuous Integration (CI) build in TFS. However, in my last project we started to use the gated check-in trigger.
Are there any disadvantages when using a gated check-in? Because if it prevents the team from checking in broken code, what's the purpose of a CI trigger?
答案 0 :(得分:37)
门控签入是一种持续集成构建的形式。在TFS中,它创建一个 shelveset ,其中包含要验证的代码,然后运行该代码的构建。只有当代码成功构建并且所有已配置的单元测试都通过时,代码才会实际提交。
持续集成是不同的 - 在CI中,无论构建的结果如何,都会提交代码。如果由于提交的代码错误而导致CI构建失败,则代码仍然存在于源代码管理中,供所有人使用。
现在以意见为基础的部分: 如果您拥有大量具有不同技能/经验水平的开发人员,那么门禁签入非常棒,因为它可以防止破解代码进入源代码管理。缺点是它增加了代码被提交和代码可供其他人使用之间的时间,因此可能导致人们坐在他们的拇指周围等待构建成功完成的情况。
我建议使用门控办理登机手续作为权宜之计。如果你有大量的门禁签到版本失败,那么它就会完成它的工作,并防止错误的代码被提交。如果随着时间的推移,团队成熟并且门禁签入版本很少失败,那么它的用途就会减少,应该切换到持续集成并纠正失败的版本,而不是延迟关闭中的每个提交有机会出现问题。
答案 1 :(得分:2)
门控签入会使提交变得越来越困难。通常这是坏的事情,因为:
因此,经过门控检查的方案是可以的: