TFS直接从子孩子合并到我

时间:2013-12-10 17:43:43

标签: tfs tfs2010 tfs2012 branching-and-merging

在我的TFS源代码控制存储库中,我有三个分支,如下所示:

MAIN
 |
  -> DEV
      |
       -> TEST

我想直接从TEST合并到MAIN而不通过DEV分支合并。

MAIN .......
 |         .
  -> DEV   .
      |    V
       -> TEST

我无法找到实现这一目标的简单方法。请帮我弄清楚这是否可能。

1 个答案:

答案 0 :(得分:4)

这是可能的,但不推荐。这就是您在TFS中称为baseless merge的内容。如果不对Visual Studio安装任何扩展,则只能从命令行执行此操作。

因为TFS不会查找要合并的文件的共同祖先,所以它会将每个更改都显示为冲突,并且需要您手动合并它们中的每一个。通过DEV合并时,TFS将能够找到共同的父级并使用它来进行3向合并。

此外,一旦TFS在两个不相关的分支之间合并,它将在两个路径之间创建分支关系。展望未来,它将显示从TEST到MAIN的路径作为有效的合并方向。

以Shelfset移植的形式有替代方案。这基本上可以存储所有已更改的文件,并允许您将更改的文件应用到其他分支,而无需创建分支关系。

如果所有这些都不能阻止你,那么这些就是这样做的方法:

  • 在Visual Studio的“合并”窗口中,在下拉菜单中输入您要合并到的路径(VS2012及以上)
  • 在命令行上使用tf merge /baseless /recursive source target创建新的合并关系。
  • 使用Visual Studio Power Tools'tfpt unshelve /migrate /source:<> /target:<> shelvesetname取消从一个分支上创建的搁置集到另一个分支的更改。