在TFS中解决冲突后强制合并

17

TFS 2010,VS 2010

我们在TFS中遇到了这样的情况,一个开发者没有按照正确的合并流程操作。当我运行将他的开发目录与主干进行比较时,我会得到一些文件,这些文件被标记为不同或者完全不在主干中。他最后一次对主干的合并/签入是在2011-05-26,最后一次对开发分支的签入是在2011-05-25。


我认为有两件事情发生了:

  1. 他没有正确地从主干更新他的开发分支(我们要求开发人员在合并开发分支到主干之前先将主干合并到开发分支并编译)

  2. 他没有正确地解决合并冲突


问题是一旦他标记了冲突已经解决,随后的合并会忽略那些差异。 我需要强制执行一个合并,重新检查整个文件中的差异,以便我可以手动更新他所做的每个更改。

我该如何做到这一点?

2个回答

17

你需要进入命令行并使用 tf merge /force 命令,例如:tf merge $/TeamProject/DevBranch $/TeamProject/Trunk /force 这将实现你的需求。

如需更多信息,请尝试使用 tf msdn 命令,它会打开浏览器并带您到 tf 命令工具的在线帮助。

/recursive 修复所有冲突并显示 GUI。


当从命令行运行时,如何解决冲突?是否仍有窗口组件让我可以进行可视化合并? - James King
1
是的,您需要从命令行启动该过程,但任何冲突都可以使用 GUI 解决。此外,从命令行使用 /preview 选项可能是值得的。这将让您了解合并会做什么。 - James Reed
我似乎无法让它工作...我必须从命令行切换到开发目录,以便tf能够找到正确的服务器...但是无论我如何尝试指定版本(/force所需),它似乎都在尝试合并dev分支中的第一个版本。 - James King
1
使用以下命令进行合并:tf merge /force /preview /version:C197309 $/CSA/Dev/Workflow $/CSA/Trunk/Source, 结果是 merge: $/CSA/Dev/Workflow;C3614~C3614 -> $/CSA/Trunk/Source;C3602, 此外,没有GUI出现...我需要启动Visual Studio来处理更改吗? - James King
@JamesReed - 如果你有时间的话,请看一下这个问题:https://dev59.com/aI_ea4cB1Zd3GeqPT9_s - RobVious

10
我觉得你的答案和评论非常有帮助。我想补充一点,我需要删除“/preview”选项才能最终打开冲突解决界面。
tf merge /recursive /force /version:C5367 "$/Source" "$/Target"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接