在我的TFS源代码控制存储库中,我有三个分支,如下所示:
MAIN
|
-> DEV
|
-> TEST
我想直接从TEST合并到MAIN而不通过DEV分支合并。
MAIN .......
| .
-> DEV .
| V
-> TEST
我无法找到实现这一目标的简单方法。请帮我弄清楚这是否可能。
答案 0 :(得分:4)
这是可能的,但不推荐。这就是您在TFS中称为baseless merge的内容。如果不对Visual Studio安装任何扩展,则只能从命令行执行此操作。
因为TFS不会查找要合并的文件的共同祖先,所以它会将每个更改都显示为冲突,并且需要您手动合并它们中的每一个。通过DEV合并时,TFS将能够找到共同的父级并使用它来进行3向合并。
此外,一旦TFS在两个不相关的分支之间合并,它将在两个路径之间创建分支关系。展望未来,它将显示从TEST到MAIN的路径作为有效的合并方向。
以Shelfset移植的形式有替代方案。这基本上可以存储所有已更改的文件,并允许您将更改的文件应用到其他分支,而无需创建分支关系。
如果所有这些都不能阻止你,那么这些就是这样做的方法:
tf merge
/baseless /recursive source target
创建新的合并关系。tfpt unshelve
/migrate /source:<> /target:<> shelvesetname
取消从一个分支上创建的搁置集到另一个分支的更改。