請幫助我: 如何避免在SVN提交中進行非預先測試的提交?避免SVN提交中未經過預先測試的提交
回答
在提交*之前,你不能強迫任何人做任何事情,你只能在每次測試提交的代碼。
要從評論引述@Thomas歐文斯:
教育誰在它擊中回購之前測試自己的代碼的重要性破壞構建的人。
在特定的環境下,您可以使用類似teamcity這樣可以解決您的問題。但最終任何人都可以在SVN上提交任何內容。
有更好的方法來測試你的應用程序。例如像
The pre-tested commit example on teamcity
*其實你做,你可以使用SVN的鉤子(見下面的註釋),但在你的情況下,這將是一個非常糟糕的主意。
這樣的工具實施高覆蓋率閾值從技術上講,這不是真的 - 如果你想要你可以設置一個SVN掛鉤來運行測試,並且如果它們失敗,則禁止提交。但那是愚蠢的,因爲它需要測試的持續時間才能完成一次提交。 – 2010-08-27 13:45:11
我想到了這個解決方案,但正如你所說的,在每次提交等待測試通過時阻止SVN並不會有效。 – 2010-08-27 13:46:16
這是持續集成和持續測試工具的要點 - 在每次簽入後運行構建和測試,以確保人員不會破壞構建。你通常可以找出檢查到底是什麼造成了休息時間,以及是誰製造的。教育那些在構建代碼之前測試代碼的重要性的人。 – 2010-08-27 13:46:44
您可以做的最合理的事情是建立一個持續集成環境,在每次提交後執行完整構建,並督促您的團隊在提交之前運行測試。
請嘗試使用SVN掛鉤腳本,例如post-commit,precommit,它們在每個操作系統中都不相同。但他們是有用的!
當然,您應該編寫自己的邏輯,將鉤子腳本與一些腳本結合起來,這些腳本會告訴您代碼是否已經過測試。
有關更多信息,請查看您的存儲庫基礎文件夾下的名爲hooks的文件夾,您將看到一個全新的世界!
希望這有助於
對於您要提交的代碼,但你不想影響/中斷別的一兩件事你可以做的是創造一個分支,提交你的代碼的情況。在您滿意測試並準備好後,您可以將這些提交合併到卡車中。
最快的方法只是告訴那些合作的人,這本書是正確的嗎?或者,在這一點上,對你而言,這是一個抨擊人類因素的大部分問題?
對於預先測試的提交,SVN似乎沒有任何好的支持。
但是,如果混帳也是一個選擇,比你可能想看看Pre-tested commits with Git和pre-tested commits with Hudson/Jenkins
- 1. 預先提交的SVN更改屬性
- 2. SVN提交鉤子,以避免提交到特定分支
- 3. TeamCity - 預測試提交
- 4. 預先提交svn鉤子以修改要在c中提交的文件#
- 5. 測試預先提交的內容中的內容
- 6. SVN預提交鉤子
- 7. SVN預提交掛鉤
- 8. SVN預提交鉤到Linux
- 9. SVN預先提交:當提交進行時獲取url的名稱
- 10. VisualSVN預先提交規則
- 11. CVS預先提交檢查
- 12. 在svn中用戶定義的預先提交鉤子?
- 13. 通過點擊兩次提交避免在Asp.net MVC中重複表單提交
- 14. 預先提交掛鉤以阻止除svnsync以外的提交
- 15. 的JavaScript提交未提交
- 16. 在subversion(svn)中添加預先提交鉤子
- 17. 避免在gerrit/git中合併提交
- 18. Jenkins提交SVN
- 19. 提交未經驗證
- 20. 測試未提交的mercurial更改
- 21. 如何通過預先提交鉤子來檢測commit --amend?
- 22. SVN需要鎖定檢查使用預先提交的鉤子
- 23. 如何使用SharpSVN訪問SVN預先提交的消息?
- 24. 避免雙重提交的Form
- 25. 避免不必要的表單提交
- 26. svn分支提交 - 實驗提交
- 27. 提交svn unstages最後一次提交?
- 28. SVN提交鉤子,用於避免更改標籤子目錄
- 29. 未提交表單提交
- 30. 自動化SVN預先提交到審覈板,然後批准後提交到SVN
我不知道我理解你的問題,但我想你應該看看添加諸如[Hudson](http://hudson-ci.org/)之類的CI服務加入您的部署過程,並通過像[Cobertura](http://cobertura.sourceforge.net/) – puug 2010-08-27 13:47:24