在我的工作中,我们目前使用Aegis版本控制/SCM。我们配置它的方式,我们有一堆测试,它强制以下事情是真实的,然后才能集成更改:
- 必须运行全套测试。
- 所有测试都必须通过。
对于测试驱动开发 (TDD),这些似乎是明智的要求。但我还没有听说过任何其他版本控制系统都可以做到这一点。(我们目前不打算切换,但我想知道将来如何在不使用 Aegis 的情况下进行切换。)
我会对任何可以做到这一点的 VCS(分布式或非分布式)感兴趣,我也对允许这样做的现有 VCS 的任何插件/扩展感兴趣。最好是开源软件。
ETA:好的,看起来通常的做法是拥有 VCS + 持续集成软件,并且作为构建的一部分自动运行测试,而不是作为一个单独的步骤。如果我理解正确,那仍然可以让您提交未通过测试的代码,只是您会收到有关它的通知-对吗?有什么东西会阻止你整合/提交它吗?