2017年TFS:在没有无基础合并的情况下重构源代码控制树?

时间:2017-10-06 20:51:11

标签: tfs tfs2017 tfvc

现在我们的源代码控制树看起来像这样:

Team Project DB
     |
     |___ Hello World DB STABLE
     |
     |___ Hello World DB RELEASE
     |
Team Project Framework
     |
     |___ Hello World Libs STABLE
     |
     |___ Hello World Libs RELEASE
     |
Team Project Windows
     |
     |___ Hello World Windows STABLE
     |
     |___ Hello World Windows RELEASE
     |
Team Project Web
     |
     |___ Hello World Website STABLE
     |
     |___ Hello World Website RELEASE

我想将其重组为:

Team Project Hello World
     |
     |_____ STABLE
     |  |
     |  |____ Hello World DB
     |  |
     |  |____ Hello World Framework
     |  |
     |  |____ Hello World Windows Client
     |  |
     |  |____ Hello World Website
     |
     |
     |_____ RELEASE
        |
        |____ Hello World DB
        |
        |____ Hello World Framework
        |
        |____ Hello World Windows Client
        |
        |____ Hello World Website

这是一个更大(并且彻底损坏)的源代码控制树的一个非常小的例子。我们所有的分支/文件夹都处于不同的开发阶段。因此,在重构代码之后,需要在某个时刻向上/向下合并。

我已经尝试过移动分支和文件夹(显然在DEV环境中进行测试)似乎无论我做什么,我总是必须在组织代码后执行无根合并。有没有人知道在TFVC中这样做的方法,这将消除代码移动后对无基础合并的需求?

提前致谢!

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。您想要做的是在不同项目之间分支/复制/移动文件夹/文件并创建新结构。

在TFS中,您只能合并到直接相关的分支(父级或子级)。在您的案例中,分支STABLERELEASE之间存在无合并关系

您必须提供无基础合并,例如使用 tf merge command

tf merge /baseless <<source path>> <<target path>> /recursive 
  

<强> /无根据

     

执行没有基本版本的合并。也就是说,允许用户   合并没有合并关系的文件和文件夹。之后   无基础合并,存在合并关系,未来合并则不存在   必须毫无根据。

     

注意无基础合并无法删除目标中的文件。您可以手动执行此类更改。