TFS 2010:主分支的门控签到;在开发分支上滚动构建?

Posted

技术标签:

【中文标题】TFS 2010:主分支的门控签到;在开发分支上滚动构建?【英文标题】:TFS 2010: Gated Check-In On Main Branch; Rolling Builds on Dev Branch? 【发布时间】:2011-05-28 07:42:13 【问题描述】:

我最近从 VSS 迁移到了 TFS 2010,我非常喜欢它,但是我还没有能够按照我认为应该的方式开始工作。

目标

我想快速了解对开发的更改何时会破坏构建。如果我们事后发现,这没什么大不了的。由于一天中有很多签入,我们不想等待构建完成,所以它应该是异步的。

对于我们的 Main 分支,我想确保在任何时候发生合并时,我们都确保它不会破坏构建。我想立即对此进行反馈。等待时间很好,因为我们不会经常合并到 Main。

当前设置

我的解决方案位于名为 Main 的文件夹下。我已经创建了一个名为 Development 的分支。我正在工作的工作区与顶层相关联,其中包括主分支和开发分支。我尝试将我的工作区调整为仅指向开发,以防出现问题。这似乎并没有解决我的问题,所以我将它设置回原来的方式 - 主要和开发。

在工作区的构建定义中,我定义了两个定义——一个用于主分支,另一个用于开发。

第一个定义是用于构建 Main 分支。它有一个门控签入触发器,并且“要构建的项目”指向 Main 中的解决方案文件。

第二个定义是在开发分支中构建解决方案。它有一个滚动构建触发器,并且“要构建的项目”指向开发中的解决方案文件。

结果

目前,当在 Development 中进行更改并执行签入时,会触发 Main 的门控签入。这不仅会造成混乱,而且还会减慢我们的整体流程。

下一步

我查看了一些关于分支的 TFS 指南、一般 TFS 使用等。不幸的是,我还没有找到解决我的问题的方法。如果您以前遇到过此问题,我将不胜感激您提供的任何建议。

【问题讨论】:

【参考方案1】:

目前我不确定 100%,但构建应该通过签入到构建定义工作区所覆盖的源树部分来触发。

因此,请查看构建定义并查看每个构建定义获取的源代码树的哪一部分。您的 CI 构建应该只获得 Dev 分支,门控构建应该只获得 Main 分支。

【讨论】:

在构建定义的工作区属性中,“源代码管理文件夹”设置为根。我尝试手动将其设置为特定的分支,但它似乎没有保存该设置。 Son of a... 好吧,显然,当我在“源代码管理文件夹”中更改为我想要的特定分支并点击保存时,这没有任何效果。当我向下移动到下一行然后点击保存时,它保留了我的更改。现在像冠军一样工作!谢谢。这让我发疯了。

以上是关于TFS 2010:主分支的门控签到;在开发分支上滚动构建?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一种简单的方法可以在一个分支中创建补丁,然后将其应用于 TFS 2010 中的另一个分支?

TFS 发布管理

TFS:使用来自 main 的更改更新分支

删除 TFS 2010 中的分支关系

如何拒绝提交到 TFS 2015 上的远程主分支?

防止在 TFS 2017 分支上直接签入,仅允许合并