【问题标题】:To where should I point the VCS root of TeamCity?我应该将 TeamCity 的 VCS 根指向哪里?
【发布时间】:2010-12-06 08:49:10
【问题描述】:

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

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

我应该将 VCS Root 设置为 http://obfuscatedserver/svn/main/MyProject1/ 还是使用主干文件夹 http://obfuscatedserver/svn/main/MyProject1/trunk/

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

哪个位置合适?

【问题讨论】:

    标签: svn msbuild continuous-integration teamcity


    【解决方案1】:

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

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

      +:/MyProject1/trunk
    

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

      MyProject1/trunk/MyProject1.proj
    

    并将工作目录设置为

      MyProject1/trunk
    

    这看起来确实需要做很多工作,但是下次您想要添加新构建时,您不必创建新的 VCSroot。

    然而,真正的好处是当 TeamCity 轮询您的 SVN 存储库时。轮询您的存储库一次将发现所有构建的所有更改。如果您的存储库托管在诸如 sourceforge 或 googlecode 之类的地方,这一点尤其重要。您当然不想为您配置的每个构建轮询他们的服务器。

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

    【讨论】:

    • 我不得不对 CI 服务器的部署稍作保留,但一旦我有时间完成它,我会尝试您的建议。
    • 您可以像这样在结帐规则中重新映射目的地:+:/MyProject1/trunk => .。这将检查trunk 的内容作为构建的根文件夹,因此msbuild 文件的位置只是MyProject1.proj。此外,您可以将工作目录留空。
    【解决方案2】:

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

    【讨论】:

    • 可以通过修改结账规则解决获取分支、标签等问题。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 1970-01-01
      • 2016-01-19
      • 2021-10-23
      • 2017-03-30
      • 2014-05-04
      • 2015-03-11
      • 2019-01-23
      • 1970-01-01
      相关资源
      最近更新 更多