我应该在哪里指向TeamCity的VCS根目录?

时间:2009-10-13 15:27:24

标签: svn msbuild continuous-integration teamcity

我正在设置TeamCity,我想知道什么应该用作VCS Root。

我的svn存储库位于http://obfuscatedserver/svn/main/MyProject1/

我应该在http://obfuscatedserver/svn/main/MyProject1/设置VCS Root还是在http://obfuscatedserver/svn/main/MyProject1/trunk/使用trunk文件夹?

现在我使用trunk文件夹,我必须将Build Runner“Build file path”设置为“trunk / MyProject1.proj”(使用msbuild)。

哪个位置合适?

3 个答案:

答案 0 :(得分:24)

我建议使用http://obfuscatedserver/svn/main/作为VCS Root,然后使用结帐规则限制检出哪些文件夹。

添加以下结帐规则(构建配置的第2部分):

  +:/MyProject1/trunk

您可能还需要将msbuild文件的位置更新为

  MyProject1/trunk/MyProject1.proj

并将工作目录设置为

  MyProject1/trunk

这似乎做了很多工作,但下次要添加新版本时,您不必创建新的VCSroot。

然而,当TeamCity民意调查您的SVN回购时,真正的好处就来了。轮询您的仓库一次将发现所有构建的所有更改。如果您的存储库托管在sourceforge或googlecode之类的地方,这一点尤为重要。您当然不希望为已配置的每个构建轮询其服务器。

此外,如果您的仓库由第三方托管,您可能希望将vcsRoot的检查间隔设置为每小时一次或类似。如果您无法等待时间过去,您可以随时要求teamcity从任何构建概述页面上的操作菜单中检查挂起的更改。

答案 1 :(得分:2)

你应该使用... / trunk /因为它会加快结账速度,否则TeamCity会获得你可能不需要构建的所有分支。

答案 2 :(得分:2)

到目前为止,我已经使用了../trunk作为根。这很好,因为在我的情况下,所有项目都位于主干下方,所以我可以轻松地完成结账。

但是标签功能不起作用,因为您需要使用像“trunk => tags”这样的规则和作为这些目录的父目录的根。由于我想标记每个版本构建,我现在考虑更改为类似于CrazyCoder建议的布局。