2010-12-14 79 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