2009-10-16 43 views
3

在我工作的地方,我們已經開始引入適當的SVN鉤子,「正確的」意思是「做大量的策略檢查」。目前,我們的政策由啓用Perl :: Tidy檢查的Perl :: Critic組成。但是,特別是後者需要花費很多時間才能觸及多個文件,SVN在提交完成後纔會返回。在SVN post-commit掛鉤中保存時間?

有什麼辦法可以在不犧牲策略檢查的情況下節省一些時間在提交後的鉤子?

回答

1

如果您希望提交失敗,如果鉤子顯示「no」,提交必須等待鉤子完成其檢查。

除了加速檢查,我什麼也看不到。 (除了舊的口頭禪:經常提交,那麼你不會一次提交這麼多文件)

3

如果你只需要一些報告(如錯誤列表),那麼你可以使用Continious Intergation系統運行一些提交後的動作。這個系統允許在源代碼管理系統發生變化後採取任何行動。下面是示例場景:

  • 有的一個承諾SVN倉庫
  • 一段時間後,CC開創這一變化,並運行該腳本:
    • 從SVN
    • 獲取最新版本
    • 運行檢查,如Perl: :評論家和Perl ::整潔
  • 如果任何檢查失敗則
    • 創建詳細的錯誤報告(可從網頁)
    • 發送電子郵件通知,如果有必要

有很多很好的Continious Intergation系統。我喜歡Hudson

2

這是另一個基於分支的開發可能有用的地方。本質上,你爲每個你想要做的任務創建一個新的分支。該分支是免除質量檢查,但合併到trunk或其他什麼都不是。所以你的日常工作速度很快,合併的速度很慢。通過組合一個機器人爲您完成這項任務,您可以減輕這種痛苦。