2012-09-17 37 views
2

我使用巡航控制.net從SVN爲應用程序獲取代碼。我想根據更改的集合來獲取它,下面是場景。如何使用CruiseControl從SVN獲取特定的代碼構建?

如果一個團隊正在構建build 1,另一個團隊正在構建build 2並且他們定期在SVN上提交他們的代碼。

我想獲取代碼只生成1,而不是生成2。我怎樣才能得到它使用巡航控制.net?一個例子將不勝感激

+0

Team1和Team2是否承諾分離分支? – hometoast

+0

不,他們在同一分支中提交代碼。 – Rup

+0

那麼你應該如何告訴CruiseControl或者其他任何人,你有兩個不同的版本? – hometoast

回答

2

每次提交到SVN都有一個唯一的修訂號。例如,要更新工作版本到一個特定的版本,使用:

svn update -r REV 

哪裏REV是構建1的版本號或建立2.參見SVNBook對svn update更多信息。

或者,如果團隊已分支他們的構建,請使用svn switch。例如:

svn switch URL 

其中URL是分支的URL。如果您不知道用於構建的版本號,請使用svn log查看更改歷史記錄以及構建完成後的哪個版本是HEAD。

請問如果變更集是源代碼管理的一項功能,您可以告訴我嗎?

「變更集」對於不同的源代碼管理系統可能意味着不同的東西。我假設你問的是源控制系統(1)是唯一標識一組進行更改的文件,以及(2)該更改是否是原子性的。是的,SVN確實可以。每個提交(更改)都由修訂號唯一標識。

我們如何使用巡航控制和nant實現它?

看那NantContrib svnsvn-checkoutsvn-update南特任務。例如,爲了獲得myproject的代碼到C:\ SRC其中c:\ src的不是一個工作組,使用:

 <svn-checkout 
      destination="c:\src" 
      svnroot="http://server/svn/repos/projects/myproject" 
      revision="HEAD" 
      username="user" 
      password="password" 
       /> 

,並與所需的修訂版本號替換頭。

+0

我們怎樣才能使用巡航控制和南特來實現它?你能告訴我,如果變更集是源代碼管理的功能嗎?什麼是簡單的方法來實現這個工作? – Rup

+1

@Rup我已經擴展我的問題來回答上述問題。 – akton

+0

感謝您的反饋! – Rup