使用不属于同一文件夹的多个存储库时,无法正确配置 teamcity 与 Mercurial 一起使用

发布于 2024-12-03 11:05:48 字数 478 浏览 0 评论 0原文

我正在尝试设置 TeamCity 构建服务器。我也在使用 Mercurial 存储库。

我的项目结构是:

Main Folder
 -Windows Form Application Repository
 -Class library 1 Repository
    -files subrepo 1
    -files subrepo 2
    -files subrepo 3
 -Class library 2 Repository

我在 teamcity 中创建了一个项目,将 3 个 VCS 添加到项目中,但没有指定签出目录,结果是来自一个签出目录中所有 3 个存储库的文件,导致构建错误。 然后我将每个 VCS 的签出目录更改为 C:\Projects。这导致了正确的文件夹结构,但其中没有文件(就好像完成了 hg pull 操作但没有完成 hg update)。

有没有人有过类似的经历,因为我找不到任何人抱怨这种情况。

I am trying to setup TeamCity build server. I am also using mercurial repositories.

My project structure is:

Main Folder
 -Windows Form Application Repository
 -Class library 1 Repository
    -files subrepo 1
    -files subrepo 2
    -files subrepo 3
 -Class library 2 Repository

I created a project in teamcity, added the 3 VCS to the project without specifying a checkout directory and the result was files from all 3 repositories in one checkout directory, resulting in build error.
I then went and changed the checkout directory of each VCS to C:\Projects. This resulted in a correct folder structure but no files in them (as if hg pull operation was done but not hg update).

Has anyone had any similar experience because I cannot find anyone complaining about such a scenario.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十六岁半 2024-12-10 11:05:48

您可以为每个存储库设置签出规则。表单的签出规则

+:.=>subdir

会将存储库的所有内容签出到指定的子目录(请参阅
此处了解详细信息)。

据我了解,您的“类库 1 存储库”有 3 个子存储库。目前,服务器端签出不支持子存储库,代理端签出也不支持签出规则(这里是 要投票/关注的问题)。

作为解决方法,您可以为每个子存储库创建单独的 VCS 根,但在这种情况下,TeamCity 会检出存储库的最新版本,而不是跟踪的提交
.hgsubstate。

You can set checkout rules for each of your repositories. Checkout rule of the form

+:.=>subdir

will checkout all the content of your repository to the specified subdir (see
here for details).

As I understand your 'Class library 1 Repository' has 3 subrepositories. At the moment subrepositories are not supported with server-side checkout and checkout rules are not supported with agent-side checkout (here is an issue to vote/watch for).

As a workaround, you can create separate VCS root for each subrepository, but in this case TeamCity checkout the latest version of you repository, not the tracked commit from
.hgsubstate.

您应该能够使用根文件夹中的单个 .hgsub 来完成所有这些操作,该文件将自动引入所有其他存储库。您应该在 TeamCity 中有一个从根提取的 VCS 根。

You should be able to do all of this using a single .hgsub in the root folder that will automatically bring in all of your other repos. You should have a single VCS root in TeamCity that pulls from the root.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文