這裏是沿@Lars的線條一些闡述回答:
創建觸發器的工作(我們稱之爲觸發),將每個分支簽入其工作區,不同的目錄(順便說一下,你可能在--depth=empty
選項中手動在工作區中創建這些目錄,然後Subversion插件仍然會檢測到更改,但如果您有很多分支,則不會簽出節省空間的代碼)。
然後,您可以使用SNV_REVISION_n
(其中n
爲1,2等;見Subversion Plugin Documentation)的腳本觸發調用作爲構建步驟來檢查哪個部門(或分公司)的確發生了變化(你需要存儲結果,當然,要在下一個觸發器構建中使用)。
然後,您只創建一個將分支名稱作爲參數的作業(我們稱之爲工作人員)。 觸發器將調用工作人員通過具有wget或curl的http使用適當的參數(例如分支名稱)。
或者,你可以爲每個分支觸發作業,並使用Parameterized Trigger Plugin調用工人。缺點是你需要爲每個分支創建一個觸發器,你會有更多的SVN輪詢(除非你使用SVN push)。在另一方面,你將不再需要編寫
檢查哪個分支已經改變了一個腳本,您可以使用從觸發傳播變更到工人(也只有在改變相關的分支)。
工作人員將手動更新/檢出作爲參數傳遞給它的分支(svn co
等)並構建。
這樣,你只有一個工作,做實際繁重(這意味着更容易維護,少臭蟲等)
我聘請我們的編譯系統這種方法。由於我們一次沒有超過2個活動分支,因此我使用每分支觸發方式。