2015-02-24 32 views
0

本地預提交是否僅掛鉤了TortoiseSVN的函數?看來svn命令行客戶端不支持它們。如果答案是肯定的,是否有任何方法來編寫腳本安裝?我的情況是,有很多提交者,可能有兩三百個。自動爲Subversion安裝本地提交鉤子

我們有幾個發佈經理,每個發佈經理都有多個虛擬機,每個虛擬機上籤出多個分支。我希望有一個腳本,我們可以在每個虛擬機上放置並運行,而不是通過手動添加(通過烏龜GUI)每個工作副本每個虛擬機每個發行管理器一個鉤子。在服務器端添加它會導致服務器的大量不必要的工作和減速。我們都在窗戶上。謝謝!

+0

你在尋找什麼樣的鉤子,爲什麼它不適合服務器? – Ben 2015-02-25 05:55:20

+0

@Ben我們有很多開發人員和很少的發佈經理。發佈管理器有時在合併期間破壞XML文件,所以我想驗證我們的XML文件在使用預先提交鉤子合併後沒有中斷。強制每個人通過服務器端的鉤子來做這個驗證將是不必要的時間消耗。 – sirdank 2015-02-25 13:18:13

+0

開發人員是否與發佈經理一樣承諾同一分支?如果沒有,您可以將掛鉤腳本設置爲僅在發佈分支上發生提交時生效。或者,您可以將掛鉤腳本設置爲僅在mergeinfo發生更改時生效(表示發生了合併)。這可能比需要某種客戶端配置更能抵抗錯誤。 – Ben 2015-02-25 16:18:49

回答

1

是的,客戶端掛鉤是TortoiseSVN-only feature(這裏顯示的設置對用戶的TortoiseSVN客戶端是全局的)。您可以通過tsvn:*hookscript properties針對特定項目對其進行配置。

對於分發,您可能希望將鉤子腳本保留在中央文件共享中,並通過這些屬性中的UNC路徑引用它們。這樣,每個人應該始終指向相同的掛鉤腳本。您需要確保您的掛鉤不依賴於工作副本或腳本可能依賴的其他工具的特定路徑。

但是,您應該而不是完全依賴於客戶端掛鉤腳本。您無法控制用戶可以使用哪個或哪些客戶端,如果他們不使用TortoiseSVN,則該功能將不存在。

+1

此外,本地用戶可以更改本地掛鉤。我們在ClearCase中遇到了這個問題,用戶只需編寫自己的代碼就可以繞過_hook_。 – 2015-02-24 19:21:30