2012-01-03 37 views
1

感謝您閱讀我的問題:)SVN預提交鉤,有沒有辦法設置在客戶端窗口中的LogMessage?

我的目標是修改此消息之前提交被激發到SVN-服務器:

enter image description here

我已經開始和預提交鉤子(C#),當我嘗試提交某些內容時,它們都會被調用。我也有一個SharpSvn庫。但不幸的是我沒有前進,我不知道如何填寫這條消息。

所以是有可能,如果是,怎麼樣?我很高興,大約每一點蛛絲馬跡:)

回答

3

提交掛鉤不會與客戶端通話,除非發生故障。然後,他們把一切被送到標準錯誤給用戶。鉤子腳本不能改變提交的任何方面。 (這並非完全正確:後提交掛鉤可以修改提交消息,作者和提交時間,但這通常是一個非常糟糕的主意。)

您可以做的是確保您的提交消息是以正確的格式,然後如果不提交,則提交失敗。用戶可以用正確的格式重新提交它們的提交。

我不會推薦使用內置的TortoiseSVN客戶端鉤子。這些都是在機器的機器的基礎上完成,所以用戶可以選擇退出他們,如果用戶使用不同的客戶端(如VisualStudio中AnkhSVN的插件)他們不工作。

你沒有提到你想要做什麼或爲什麼。

歡迎您使用Perl編寫的my hook。該廚房水槽鉤做幾個任務,其中之一可確保提交信息是正確的格式。例如,您可以要求它包含一個缺陷跟蹤ID,或者至少......說...... 10個字符長。

但是,如果用戶提交信息不匹配的標準,鉤子將失敗的提交,用戶將不得不再次嘗試。訣竅是提出一個很好的錯誤信息,以便用戶知道他們做錯了什麼。相信我,經過一兩次嘗試後,用戶可以掌握一個好的提交信息。

但是,您可能想嘗試稍微不同的路線:使用持續集成系統,例如Jenkins

我注意到,只要我在Jenkins上運行並運行項目,提交消息就會自動提高。每個Subversion提交都轉換爲構建。但是,詹金斯還向您展示了之前和當前版本以及提交消息之間的所有變化。

這主要有能見度做。在Jenkins之前,提交消息相當隱蔽。你只有看到他們,如果你做了一個svn log和很少有人經常這樣做。但是,在Jenkins中,您在每個構建和提交中都可以看到它。您可以查看歷史記錄,誰更改了歷史記錄,以及通過在網頁上點擊幾下來更改歷史記錄。

這可能是處理你想要的最好方法。

相關問題