2010-10-01 27 views
1

假設哈德森工作檢查出2個SVN目錄:無法獲取SVN排除在哈德森工作

https://foo.com/packages (root is https://foo.com/packages) -> "packages" in workspace 
https://bar.com/temp/Hudson (root is https://bar.com/temp) -> "Hudson" in workspace 

我嘗試不同的東西,在網上瀏覽的答案,但我還是不能讓這些東西2工作:

1)阻止任何提交「哈德森」觸發構建: 我試圖在「排除的區域」中的幾個路徑組合沒有成功。

2)防止在觸發構建的消息中包含「CR:」的任何提交: 我在「排除的提交消息」字段中嘗試了「\ bCR:\ b」等,但它不起作用。

謝謝!

回答

0

正則表達式必須完全匹配被排除的路徑。它不能只是目錄的名稱。此外,它還必須包含一個主要的斜線。

例如,假設構建提交庫並且該提交不應該觸發另一個構建。

位置在SVN的目錄:

http://subversion.xyz.com/MyProject/lib 

什麼在排除地區盒雲:

/MyProject/lib/.* 
0

爲什麼不試試其他方向?在SVN中編寫一個只在需要時才調用Hudson的鉤子腳本。對於來自Hudson的提交,根本不要觸發構建。

+1

好一點,這可能會工作,但1)我沒有管理員權限在回購和2)SVN不應該知道或處理構建系統(這些是真正獨立的系統,我寧願不添加更多的依賴關係不必要的)。哈德森提供什麼似乎是一個乾淨的解決方案,我我想使用它。 – Pol 2010-10-01 01:46:47

0

1-1)一個簡單而又髒兮兮的方法是,有兩個工作,第一個工作是檢測一個倉庫中的變化並觸發第二個工作。第二項工作下載所有需要的資源並運行構建。

專業:容易理解,沒有太多的擺弄。 缺點:您必須從一個存儲庫檢出兩次或找到將源從作業1複製到作業2的可靠方法(例如Clone Workspace SCM),兩個作業

1-2)在Hudson中配置一個存儲庫並檢查在第一個構建步驟中從第二個存儲庫中提取出來。 con:你可能需要硬編碼密碼,錯過了使用Hudson支持顛覆的美妙之處。

2)\bCR:\b看起來不像正則表達式。我建議你嘗試類似.*CR:.*的東西,如果CR:必須在行首^CR.*

This page about regular expressions幫助我深入瞭解正則表達式,但它也包含初學者指南。

+0

對於#1,再一個很好的解決方法的想法,我會多等一會兒,看看是否有人可以想出適合「排除區域」的語法。對於#2,我會嘗試你的建議。 – Pol 2010-10-01 07:22:55

+0

你建議的正則表達式似乎工作,都很好! – Pol 2010-10-01 13:02:54

+1

嘗試爲您排除的區域使用類似的語法。根據示例,您必須使用存儲庫中的路徑(不包括存儲庫URL)。我爲正則表達式添加了一個鏈接到我的答案。 – 2010-10-01 14:31:35