2010-12-14 78 views
4

您或您试图如何保护您的源代码库免受引入错误或破坏构建的提交?似乎强制进行回归测试可以大大防止错误蔓延到多个开发人员所开发的项目中。但是,大多数常见的代码版本工具不提供这方面的任何功能。如何保护代码库免遭破坏或错误提交?

这是我试验过的一种方法。我创建了subversion pre-commit hooks来生成合并了未决commit的更改的项目副本,然后在此副本上运行语法检查和单元测试。如果任何测试失败,则提交将被语法检查器或单元测试的结果拒绝,以向进行该提交的开发人员提供反馈。如果语法检查器和单元测试通过,提交将被接受。它的工作,但交易是它使承诺非常缓慢。如果代码版本管理软件提供了更好的集成,以便于在预提交时运行外部程序,我认为速度可以提高。

我正在寻找你曾经使用过的方法来实现这一点,想法为什么这是一个好的或坏的想法,或者使用代码版本工具的经验,它提供了对代码签入的回归测试/构建测试的支持。提交给你的速度有多重要?

回答

6

您应该使用某种形式的Continuous Integration,其中环境正在使用Hudson,CruiseControl或其他tool来促进此行为。

+1

要添加到此答案,您应该使用某种形式的分支来保护潜在的更改不会破坏代码的工作版本。这样,您仍然可以使用版本控制的优势,而不必将代码暴露给主要分支机构或源代码,直到您确定它可以正常工作为止。 – 2010-12-14 20:19:59

+0

+1,CI工具通常允许您在构建中断时通知开发人员(通过电子邮件或其他方式) - 确保快速修复破损的构建。 – 2010-12-14 20:23:42