我们正在使用Visual Studio 2015。
我有三个分支,'DEV'用于创建新代码,'MAIN',其中测试好的代码作为主存储库,'PRE'用于对先前发布的代码进行编辑。 (PRE更改可以很容易地合并到DEV中,因为我们永远不应该在两个地方处理同一个文件)
那就是说,我把优秀的代码从PRE合并到MAIN没有任何问题。我检查了这些变化。当我将该代码从MAIN合并到DEV时,.sln文件中存在冲突,但这并不是什么新鲜事。 DEV中存在一些尚未存在于MAIN或PRE中的新项目,因此总会有一些改组。我使用了合并工具并尝试解决冲突。
我完成了合并,并检查了变更集。只有在办理登机手续后我才意识到.sln文件的合并存在问题,我无法构建解决方案,因为文件的路径以某种方式交叉/损坏。
我收到的错误是“无法找到元数据文件\路径\文件夹\ buildlocation \ solution.dll”。每个项目都会重复此错误。 编辑:我解决了构建问题。这不是.sln问题,而是共享库中的错误。
===========================
那就是说,我相信如果有人需要,下面的问题仍然有效。
所以这里有一个问题:我知道我可以在DEV上回滚以返回到先前的状态,但这会创建需要签入的“新”更改,这将覆盖之前的更改。但是,一旦完成,我仍然需要尝试将MAIN的良好更改重新合并回DEV。由于该变更集已经合并,因此它不再可用作合并候选者。
我怎样才能A)回滚来自DEV合并的更改,然后B)将这些更改重新合并到DEV并尝试正确执行?
答案 0 :(得分:0)
我相信你的问题已在这里得到解答:TFS merge doesn't pick up rollback changeset(s)。
引用这个答案:
"当您回滚包含分支或合并更改的变更集时,您通常希望将来在同一源和同一目标之间进行合并以包含这些更改。但是,如果您希望将来在同一源和同一目标之间进行合并,则可以使用/ keepmergehistory选项来排除过去合并操作中包含的变更集。"
因此,只要您不使用/ keepmergehistory(VS中的GUI不会),那么在回滚初始合并后,各个变更集将可以再次合并(合并回滚本身不会但是,由于没有设置/ keepmergehistory,所以能够合并回来。当我通过两个更改合并时,当我只想要一个时,这对我有用。