回答
不要在掛鉤中完成此操作 - 在單獨的更改中執行此操作,以便該分支的其他用戶可以將其拖放到其工作副本中。它並不需要比這更復雜(在僞代碼):
- 腳本從信息庫中的工作拷貝到本地目錄
- 腳本修改文件
- 腳本承諾具有良好的提交信息文件「例如,‘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. Shell腳本來計算在svn repo中修改的文件數
- 4. 預先提交svn鉤子以修改要在c中提交的文件#
- 5. 修改SVN的:記錄與的pre-revprop-change鉤子
- 6. SVN掛鉤修改文件和提交後同步
- 7. 鉤腳本將SVN文件從本地移動到遠程
- 8. Python腳本中的SVN鉤子環境問題
- 9. 在PHP鉤子中將文本消息修改爲html
- 10. svn鉤子文件位於哪裏?
- 11. svn在本地副本中修改的文件列表
- 12. 在visual svn服務器中處理鉤子腳本
- 13. Bazaar插件:預提交鉤子上的修改文件列表
- 14. 用SVN管理SVN鉤子?
- 15. 我的SVN鉤子腳本有什麼問題----- pre-commit.bat?
- 16. 有關顛覆(svn)鉤子腳本的幫助
- 17. ruby腳本沒有成功調用svn的post commit鉤子腳本
- 18. 修改Powershell腳本以修改所選目錄中子文件夾的「上次修改日期」
- 19. SVN錯誤 - 保留本地修改或版本的文件,
- 20. 使用Ruby腳本修改csv文件
- 21. bash腳本,修改一個文件
- 22. 使用Python腳本修改文件名
- 23. 與PHP腳本修改YAML文件
- 24. 與Python腳本修改XML文件
- 25. 修改文件使用腳本
- 26. Git掛鉤,修改提交文件
- 27. SVN鉤子複製提交的文件和文件夾?
- 28. 由於.NET,svn鉤子讀取vbs,ruby,...腳本嗎?
- 29. PERL腳本作爲預提交鉤子在SVN
- 30. 如何編寫一個svn鉤子腳本
好吧,也許post_commit鉤子是不適合做這種修改的地方...但也許在pre_commit? – 2009-11-19 13:22:42
@Carlo:預先提交肯定是錯誤的,因爲您不得更改正在簽入的文件。請參閱我的答案。 – sbi 2009-11-20 09:20:13