【问题标题】:TFS Branch Merge on different branches不同分支上的 TFS 分支合并
【发布时间】:2020-07-13 04:34:47
【问题描述】:

我在 TFS 上有以下结构:

$基础

 - $Dev Branch 1

 - $Integration Branch 2

我想将 Dev Branch 1 上的更改合并到 Integration Branch 2,以便构建人员可以启动该集成分支的 Hudson 构建。

我正在使用 Visual Studio 2008 Team,当我尝试销售 Dev Branch1 时,我只能看到 Base on Target Branch 下拉菜单。

谁能告诉我如何以及是否可以在上面的 Dev 和 Integration 分支之间合并。

谢谢

【问题讨论】:

  • 有什么理由使用 Hudson 而不是内置的 Team Build?
  • TFS 对组织来说是一个安静的新事物,即从 VSS 迁移。所以哈德森最终会被取代。

标签: tfs


【解决方案1】:

有几种方法可以做到这一点,但都不是很好。对于第一种方法,您需要安装 TFS 2010 power tools

  1. 使用搁置集。开始从开发到基础的合并,解决任何冲突。不要签入合并,而是搁置更改。然后从命令行使用tfpt unshelve "my shelve set" /migrate /source:$/teamProject/dev /target:$/teamProject/integration。这会将搁置的更改迁移到集成分支,而无需将更改提交到基础分支。

  2. 在开发和集成之间执行毫无根据的合并。您可以使用命令tf merge $/teamProject/dev $/teamProject/integration /baseless /recursive 来执行此操作,一旦无基础合并建立了分支关系,您就可以通过 UI 进行进一步的合并。请注意,毫无根据的合并不会知道任何已重命名或移动的文件或文件夹,因此您需要确保将这一点考虑在内。

如果是一次性的,我个人会选择选项 1。如果这将是您认为需要定期执行的操作,那么当所有 3 个分支都同步时,我会进行毫无根据的合并,即就在您从开发合并到基础再到集成之后。这应该可以最大限度地减少无根据合并的任何问题。

您可能还想看看您的分支策略,这样您就不需要经常执行复杂的合并操作。如果您使用集成分支,那么它应该与您需要集成的任何分支有直接关系。查看ALM rangers branching guidance

【讨论】:

    【解决方案2】:

    您只能合并到创建分支的位置。您必须从 Dev 合并到 Base,然后再从 Base 合并到 Integration。

    如果你想直接从 Dev 合并到 Integration,那么你的 Integration 分支应该创建为 Dev 而不是 Base 的分支。

    【讨论】:

      猜你喜欢
      • 2012-10-16
      • 2015-10-02
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2011-08-08
      相关资源
      最近更新 更多