Jeff Atwood wrote about whitespace並建議創建提交鉤子,用於刪除行和文件尾部的尾部空白。Subversion空格刪除提交鉤子
我已經搜索,但我還沒有找到一個明確的例子,使用pre-commit
掛鉤來修改這樣的文件。你有一個你想分享的劇本嗎?
Jeff Atwood wrote about whitespace並建議創建提交鉤子,用於刪除行和文件尾部的尾部空白。Subversion空格刪除提交鉤子
我已經搜索,但我還沒有找到一個明確的例子,使用pre-commit
掛鉤來修改這樣的文件。你有一個你想分享的劇本嗎?
我很確定pre-commit hooks不能用於修改正在進行的交易。它只能允許或拒絕提交操作。在你的情況下,你需要檢查這些文件,看看它們是否符合你的空白要求,如果不符合,會提交一個有用的錯誤信息。您可以使用post-commit掛鉤來完成您的建議,但它會涉及從掛鉤腳本中進行第二次提交,以修復第一次提交中的空白。我認爲pre-commit hook方法更好。
您不能真正使用提交掛鉤在subversion中執行此操作,因爲如果文件被服務器修改,它將與客戶端上的版本不匹配。提交鉤子適用於只讀事件,例如生成通知消息,或者通過檢查文件以查看提交是否應該被阻止。
參見the documentation on commit hooks:
的鉤是由一些庫事件,例如設立一個新的修訂的或版本控制的屬性的修改觸發的程序。一些鉤子(即所謂的「前鉤子」)在存儲庫操作之前運行,並提供一種手段,通過該手段,報告即將發生的事情並防止它發生在處。其他鉤子(「後鉤子」)在庫事件完成後運行,並且對執行檢查(但不修改)存儲庫的任務的很有用。每個鉤子都傳遞了足夠的信息來告訴事件是(或者是)事件,提出(或完成)的具體存儲庫更改以及觸發事件的人員的用戶名。
不知道你是什麼平臺上,但你可以用TortoiseSVN做到這一點,利用其client-side hooks。
本質上,你會寫一個腳本,使用預先提交鉤子修改文件。不過,我認爲這在構建腳本中更加正確:您並不真的想要提交甚至沒有編譯或運行的代碼!根據上下文/語言,刪除空格的腳本可能會破壞某些內容。