我遇到了以下TFS问题:
我从主要分支机构中创建了新的分支机构。在此期间,在新分支上发生了一些更改集(让我们指定它们从CS-1到CS-2)。有一段时间,我对主分支进行了修改,该修改已经合并到新的分支上(分支上的新变更集: CS-3)。
在此之后,新的分支发生了一些变化(这产生了从CS-4到CS-5的变化)。另外,我还回滚了CS-3,因此在新分支上创建了新的变更集CS-6。
现在,问题是:哪些变更集应该包含在从新分支到主分支的合并中?从逻辑上讲,应该是: CS-1 - CS-2,CS-4-CS-5和CS-6.但是,真正的结果是: CS-1 - CS-2,CS-4 - CS-5
有谁知道:为什么回滚变更集(CS-6)不包含在合并中?很明显,ChangesetCS-6的回滚并不像往常一样被平等对待。
发布于 2015-07-23 22:35:29
首先,解释得很好的问题:)。您需要开始使用的选项是“
tf回滚/keepmergehistory
下面的示例解释了我们在执行回滚时可以使用的两个不同选项,以及为什么您得到了上面提到的特定行为。我重新创建了前面提到的整个场景,但是我使用
/keepmergehistory
这一次,当我试图从dev分支合并回主分支时,它确实将回滚更改(CS6)返回到源/主分支。
来自MSDN的解释:
当回滚包含分支或合并更改的更改集时,通常希望在相同源和相同目标之间的将来合并包含这些更改。但是,如果希望将来在同一源和同一目标之间进行合并,则可以使用/keepmergehistory选项来排除过去合并操作中包含的变更集。
例如,可以在以下情况下使用此命令:
您可以签入此合并,作为变更集292的一部分。
您签入更改作为变更集314的一部分。此操作的结果是,您在更改集297、301和305到$/BranchA/Util.cs中所做的编辑现在也应用于$/BranchB/Util.cs。
https://stackoverflow.com/questions/31581202
复制相似问题