Ric*_*erg 22
除非你正在运行TFS 2010,否则我建议使用Merge + Resolve使这两个分支同步.
# cancel out of conflict dialog
tf merge A B -r -force -version:T
tf resolve B -r -auto:acceptTheirs
Run Code Online (Sandbox Code Playgroud)
这应该均衡所有内容,除了仅在B中创建并且从不合并的文件.使用Folder Diff查找并协调它们.
2005/2008中的Delete + rebranch将来会冒着噩梦到调试命名空间冲突的风险.如果你有2008年,另一个选择是Destroy + rebranch.显然,假设您可以从原始副本B中丢失所有历史记录.
小智 17
在Visual Studio 2010中,我只使用baseless合并来实现此目的:
Tf merge/baseless [源路径] [目标路径] /递归
解决冲突窗口弹出窗口时,选择"Take source version"选项.请注意,仅使用baseless merge不会删除目标中存在的文件,但您可以比较2个分支以识别差异并手动删除它们.
请参阅:http://msdn.microsoft.com/en-us/library/bb668976.aspx
我使用理查德伯格的答案取得了成功,但感觉有一些细节遗失了.这就是我能够消除与冲突解决方案和变更集相关的差异,这些差异尚未合并回源并使目标与源相同.请注意,这就是我将如何引用分支 - source是不应该更改的,而target是应该与source相同的.
tf merge $/target $/source /recursive /discard
注意:确保已将工作文件夹设置为工作空间中的路径,以便tf工具知道要使用的工作空间和TFS服务器.
检查应该解决的分支之间是否存在差异 - 如果不存在,则不需要进一步的操作.
3.1.查看目标分支上的历史记录,并查找从源到目标的最后一次完整合并(忽略任何樱桃选择合并,因为这将导致大量误报) - 记下变更集编号.更简单的替代方法是执行从源分支到目标分支的合并,以从源分支到目标分支获得最新版本.
3.2.右键单击Source Control Explorer中的源分支,然后从上下文菜单中选择Compare.如果在步骤2.1中将源分支合并到目标分支,则仅获取源的最新版本.否则,从源版本中选择更改集 键入组合框,然后输入步骤2.1中的变更集编号.
3.3.使用"目标路径"字段旁边的"浏览"按钮上的下拉箭头选择"服务器路径".然后在打开的对话框中选择目标分支.
3.4.在"比较"对话框中单击"确定"以执行比较.
tf merge $/source $/target /recursive /force /version:T
注意: T版本规范表示最新版本.
关闭合并冲突对话框.
通过选择源分支自动解决所有冲突.
tf resolve $/target /recursive -auto:TakeTheirs
报到.
确认不再有从目标到源的合并候选者,并且两个分支之间没有差异(这次只使用最新版本,因为我们在步骤4中强制合并了最新版本).
有关tf merge和resolve命令的更多详细信息,请参阅MSDN .
| 归档时间: |
|
| 查看次数: |
17141 次 |
| 最近记录: |