2009-10-13 174 views
20

我正在設置TeamCity,我在想什麼應該用作VCS根目錄。我應該在哪裏指出TeamCity的VCS根目錄?

我的SVN倉庫位於http://obfuscatedserver/svn/main/MyProject1/

我應該設置VCS根在http://obfuscatedserver/svn/main/MyProject1/或使用trunk文件夾在http://obfuscatedserver/svn/main/MyProject1/trunk/

現在我是而不是使用trunk文件夾,我必須設置Build Runner「Build file path」設置爲「trunk/MyProject1.proj」(使用msbuild)。

哪個位置是合適的?

回答

24

我建議使用http://obfuscatedserver/svn/main/作爲VCS Root,然後使用結帳規則限制檢出哪些文件夾。

添加下列檢查規則(編譯配置第2條):

+:/MyProject1/trunk 

你可能還需要更新您的MSBuild文件的位置

MyProject1/trunk/MyProject1.proj 

和設置工作目錄到

MyProject1/trunk 

這看起來像很多工作,但下次你想要添加一個新的版本,你不必創建一個新的VCSroot。

但是,真正的好處來自TeamCity調查您的SVN回購。輪詢你的回購一次會發現所有你的版本的所有變化。如果您的存儲庫託管在sourceforge或googlecode等某處,這一點尤其重要。您當然不希望爲您配置的每個構建輪詢他們的服務器。另外,如果您的存儲庫由第三方託管,則可能需要將vcsRoot的檢查時間間隔設置爲每小時一次或類似的時間。如果您無法等待小時過去,您可以隨時要求teamcity檢查任何生成概覽頁上操作菜單的待處理更改。

+0

我不得不對CI服務器的部署進行一點控制,但是一旦我有時間完成它,我會嘗試你的建議。 – 2009-10-20 14:24:05

+4

您可以在結算規則中重新映射目的地,例如:'+:/ MyProject1/trunk => .'。這將檢查trunk的內容作爲構建的根文件夾,因此msbuild文件的位置只是「MyProject1.proj」。另外,您可以將工作目錄留空。 – timomeinen 2013-11-21 13:30:05

2

您應該使用.../trunk /,因爲它會加快結帳速度,否則TeamCity將獲得您可能不需要構建的所有分支。

+1

您可以通過修改結帳規則來解決獲取分支,標籤等問題。 – dthrasher 2012-10-08 21:14:16

2

到目前爲止,我用../trunk作爲根。這很好,因爲在我的情況下,所有項目都位於主幹下方,因此我可以輕鬆完成完整的結帳。

但標籤功能不起作用,因爲您需要使用像「trunk =>標籤」和作爲這些目錄的父級的根的規則。正如我想標記每個發佈版本,我現在考慮改變爲類似於CrazyCoder建議的佈局。