2011-11-17 54 views
2

顛覆庫佈局遵循/樹幹/分支機構/ ...模式上最新的穩定版的分支,所以我們有:顛覆:自動查找構建服務器

/trunk 
/branches/stable-20100716 
/branches/stable-20111231 
/branches/stable-20110401 
/branches/specialversion 
/tags/some-tag 

然後,我們有一個構建服務器,可以構建主幹和當前穩定版本。

的問題是:如何構建服務器發現當前穩定版本?

我們使用的CruiseControl(Java版本)和螞蟻在Windows環境的構建過程。但是,顛覆服務器是Linux。

在CVS中,我們會用一個標籤。這是我第一次在顛覆中缺少標籤。我可以標記分支,但爲了使標籤保持最新,我會在每次提交時刪除/添加標籤到當前的穩定版本。也許一個提交鉤子可以幫助,但有一個更簡單的解決方案來自動執行此操作嗎? (也許沒有性學習的Windows腳本宿主左右?)

加載項爲每個新的穩定版本構建服務器上一個新的項目將是可能的,但它是相當複雜和容易出錯...

回答

2

也許你可以創建一個symbolink link做出/分支機構/穩定版本重定向到您的最後一個穩定的分支(手動操作,但是在每一個新的穩定建立的分支只有一次這樣做)。所以,你的倉庫將是這樣的:

/trunk 
/branches/stable-20100716 
/branches/stable-20111231 
/branches/stable-20110401 
/branches/specialversion 
/branches/stable-version # symbolink link to stable-20111231 
/tags/some-tag 
+0

我爲此答案投了票,但我認爲莫里茨可能想要全自動處理......就像「一旦他寫完螞蟻文件,他就再也不會做任何事了......」 – coolcfan

+0

接受,因爲它是最好的方式。但是,如果我嘗試檢出符號鏈接,svn告訴我:sdn co file:/// aaa/branches/stable-version aaa_stable_link' svn:URL文件: /// aaa/branches/stable-version是指一個文件,而不是一個目錄,所以我必須檢查整個「分支」樹...不是最優的。 –

1

最簡單的解決方案似乎是,重命名你的穩定目錄。如果你只有一個穩定的當前版本,那麼你應該只有一個穩定的目錄。

如果你需要保持過去的3個或4的穩定版本,安裝3或4個穩定的目錄和每個Cruisecontrol可以項目。

如果你想構建機器自動建立具有最新日期的版本,並用其作爲「穩定」建立,那麼你可能需要一些工作與魔法CruiseControl的配置文件。可能在項目配置中使用動態值。

http://www.cruisecontrolnet.org/projects/ccnet/wiki/Dynamic_Values

+0

謝謝您的回答。但是,所有選項都不滿足要求:不同的穩定分支必須並行存在,因此我們可以有多個穩定版本;覆蓋一個單一的「穩定」分支會混淆svn結構。最後,我們使用cruiseControl,而不是CruiseControl.net,它似乎缺乏動態值:(對嗎? –

+0

我不是很熟悉CruiseControl的非網絡版本,我總是認爲它們有些同步,至少在但是我可能是錯的 – Verifex