tortoisemerge是tortoisesvn自带的轻量级可视化冲突解决工具,专为svn文件级合并设计,开箱即用;当update或merge发生冲突且未配置外部工具时自动触发,通过三栏界面(base/mine/theirs)辅助人工比对与合并,需保存后手动标记“resolved”并提交。

TortoiseSVN 自带的 TortoiseMerge 是一个轻量、免配置的三方合并工具,专为解决 SVN 冲突设计。它不依赖 Beyond Compare 或 WinMerge 等外部工具,开箱即用,适合快速处理文件级冲突。
什么时候会触发 TortoiseMerge?
当你执行更新(Update)或合并(Merge)操作后出现冲突,且未配置外部合并工具时,TortoiseSVN 默认调用 TortoiseMerge。常见场景包括:
- 多人修改同一文件的同一段代码,提交前 Update 发生冲突
- 将分支合并到主干时,目标文件在本地已被修改
- 手动右键选择“Edit Conflicts”时自动打开
界面三栏含义与操作逻辑
TortoiseMerge 界面从左到右依次为:
- Left(Base):原始共同版本(即冲突发生前双方都基于的那个版本)
- Middle(Mine):你本地修改后的版本(当前工作副本)
- Right(Theirs):他人已提交、你刚更新下来的版本(服务器最新)
中间栏是你可编辑的区域。所有最终保留的代码都需落在此栏;点击左右两侧任意一行,再点中间对应位置的箭头按钮(← 或 →),即可把该行内容复制过去。支持逐行、逐块、整文件拷贝。
高效解决冲突的关键操作
- 红色高亮区域表示真实冲突(三方内容均不同),需人工判断取舍
- 黄色背景表示“潜在冲突”(Mine 和 Theirs 相同但不同于 Base),通常可直接接受(→ 或 ←)
- 按 Ctrl+1 / Ctrl+2 / Ctrl+3 可快速聚焦 Left / Mine / Right 面板,方便比对
- 右键某一行可选择“Use This Line”、“Use Both”(追加)、“Skip This Conflict”等快捷操作
- 解决完所有冲突后,保存文件(Ctrl+S),关闭窗口即完成冲突标记清除
合并后必须做的两件事
- 保存文件后,需手动右键该文件 → “Resolved”,告诉 SVN 你已处理完毕(否则仍显示冲突状态)
- 确认代码可编译、逻辑无误后,执行 Commit 提交——此时提交的是你手工整合后的 Mine 版本
注意:TortoiseMerge 不支持语法感知或函数级智能合并,纯文本行级比对。复杂逻辑冲突仍需开发者理解上下文后决策。











