回答
不要在掛鉤中完成此操作 - 在單獨的更改中執行此操作,以便該分支的其他用戶可以將其拖放到其工作副本中。它並不需要比這更復雜(在僞代碼):
- 腳本從信息庫中的工作拷貝到本地目錄
- 腳本修改文件
- 腳本承諾具有良好的提交信息文件「例如,‘foo腳本:添加校驗和’
它的情況並不少見構建腳本(在cron下運行,或通過一個Makefile觸發)的基礎上的其他文件進行定期修訂的庫,例如再生文件有時這些。被檢入到存儲庫中有時它們不是,取決於誰使用這些文件以及如何使用這些文件。
這就是*我正在做的事情。問題在於何時更合適。在post_commit似乎是合理的原因,我不是「變形」的實際交易,只添加sometinhg後:)。 而且,是的,腳本應該在自己的回購工作副本上執行。 TNX – 2009-11-20 11:04:15
您可能需要閱讀SVN書的this chapter。在它的盡頭,有一個漂亮的紅色方塊以下警告:
雖然鉤子腳本幾乎可以做任何事情,有一個維度中,鉤子腳本作者應該表現出剋制:不修改提交事務使用鉤子腳本。雖然使用鉤子腳本自動糾正提交文件中存在的錯誤,缺陷或策略違規可能很誘人,但這樣做可能會導致問題。 Subversion保留了某些數據庫數據的客戶端緩存,並且如果以這種方式更改提交事務,這些緩存將變得無法檢測。這種不一致會導致令人驚訝和意外的行爲。您不應該修改事務,而應該簡單地在預提交掛鉤中驗證事務,並在它不符合所需要求時拒絕提交。作爲獎勵,您的用戶將會學習到認真遵守法規的工作習慣的價值。
謝謝,我讀過它..但是我問(主要是我自己)是否可以實施一些工作 - 阿羅努。 這樣一個post_commit鉤子可以調用腳本: 1.在repo的工作副本上發出svn更新 2.相應地應用其更改(校驗和等) 3.發出svn commit -m「校驗加bla bla ...「 你認爲這是可行的/合適的嗎? – 2009-11-19 13:35:38
也許,我不知道。坦率地說,我會在SVN郵件列表中提問。 – sbi 2009-11-19 16:29:06
你可以在post commit hook中做你所說的話,只要知道它會在repository中添加一個額外的修訂版本,並且原來的committer也需要進行更新以獲取更改。 – 2009-11-19 18:09:40
在post commit鉤子中做你的建議沒有問題,但要知道它會向存儲庫添加一個新的修訂版本,並且原始提交者在看到更改之前需要進行更新劇本。 它還會在提交操作返回之前運行後提交速度變慢。
- 1. 替代SVN鉤子,修改
- 2. SVN鉤子腳本衝突
- 3. SVN掛鉤腳本執行
- 4. 鉤腳本將SVN文件從本地移動到遠程
- 5. Python腳本中的SVN鉤子環境問題
- 6. 在PHP鉤子中將文本消息修改爲html
- 7. svn在本地副本中修改的文件列表
- 8. Bazaar插件:預提交鉤子上的修改文件列表
- 9. 用SVN管理SVN鉤子?
- 10. 我的SVN鉤子腳本有什麼問題----- pre-commit.bat?
- 11. 有關顛覆(svn)鉤子腳本的幫助
- 12. ruby腳本沒有成功調用svn的post commit鉤子腳本
- 13. 與Python腳本修改XML文件
- 14. 修改文件使用腳本
- 15. 使用Python腳本修改文件名
- 16. SVN錯誤 - 保留本地修改或版本的文件,
- 17. SVN鉤子複製提交的文件和文件夾?
- 18. 如何編寫一個svn鉤子腳本
- 19. PERL腳本作爲預提交鉤子在SVN
- 20. 修改腳本
- 21. Groovy顛覆鉤子腳本
- 22. 鉤子腳本教程?
- 23. 修改腳本以從文本文件中讀取
- 24. 如何才能檢出在SVN修訂版本中修改過的文件?
- 25. PHP腳本修改文件位置的文本
- 26. SVN post-commit hook修改外部文件
- 27. Ant腳本來修改一個罐子
- 28. PostCommit在Jenkins/SVN中的鉤子
- 29. 如何通過sh腳本修改environment.rb? (即通過腳本修改文件中的行)
- 30. SVN pre-commit鉤子編碼
好吧,也許post_commit鉤子是不適合做這種修改的地方...但也許在pre_commit? – 2009-11-19 13:22:42
@Carlo:預先提交肯定是錯誤的,因爲您不得更改正在簽入的文件。請參閱我的答案。 – sbi 2009-11-20 09:20:13