我有基本分支,3个子分支,每个分支有3个分支,从基本分支开始总共有12个子分支。
我刚刚对基础分支进行了更改,我想合并到所有12个子分支中。是否有可能一次将更改合并到所有子分支中?或者我必须单独合并它们?
您可以对变更集执行三次合并操作,从base
到子分支。但是,您还需要将base
的更改毫无根据地合并到孙子分支。
我不知道如果你试图将变更集与签入合并到12个分支中会发生什么。
就我个人而言,我会咬紧牙关,把它合并到层次结构下的每个分支。这样做的好处是可以很容易地跟踪单个更改,处理冲突,并且不需要任何毫无根据的合并。
之前也遇到过类似的情况。我采用的一个简单解决方案是编写一个小的shell脚本,使这个过程稍微自动化一些。下面是一个示例:
@echo Merge - Product ABC
@"%VS100COMNTOOLS%..IDEtf.exe" merge /recursive "BaseCORE" "$/.../tfs/path/to/ABC"
@echo Merge - Product XYZ
@"%VS100COMNTOOLS%..IDEtf.exe" merge /recursive "BaseCORE" "$/.../tfs/path/to/XYZ"
@echo Merge - Product 123
@"%VS100COMNTOOLS%..IDEtf.exe" merge /recursive "BaseCORE" "$/.../tfs/path/to/123"
这种方法有明显的缺陷,但是如果您发现自己要将相同的共享基合并到许多子分支中,这至少可以加快进程。
一旦脚本被执行,你可以简单地签入所有内容(如果所有内容都在同一个屋檐下,则批量签入)。
还作为旁注,如果您复制脚本并交换src和dst路径,那么基本上可以将子分支中的所有更改向后集成回主基;)