提交代码前必须先更新并手动解决冲突,不可跳过或直接标记;正确顺序为:右键→SVN Update→无冲突则SVN Commit→填写有意义日志;冲突时通过TortoiseMerge三栏对比解决,清除冲突标记后需Resolve再Commit。

提交代码前必须先更新,冲突要手动合并再标记解决,不能跳过或直接标记了事。
提交代码的正确顺序
SVN 不允许“覆盖式”提交。你改完代码后,不能直接 Commit,否则大概率失败。
- 右键项目文件夹 → 选择 SVN Update,拉取服务器最新版本
- 如果更新过程没提示冲突,说明本地与服务器无重叠修改,此时可安全提交
- 右键 → SVN Commit,勾选要提交的文件,填写有意义的日志(例如“修复登录页空指针”),点击确定
- 提交成功后,本地副本版本号会同步上升,状态图标变为绿色对号
识别和定位冲突文件
更新时弹出警告、或文件图标变成红色感叹号,就表示发生了冲突。此时 SVN 已自动保留三份内容:
-
原始文件(如
config.xml):含冲突标记/ <code>=======/>>>>>> .r1234 - .mine 文件:你上次修改但还没提交的版本
- .rXXXX 文件:服务器上导致冲突的那个版本(数字是修订号)
用 svn status 命令或右键 → TortoiseSVN → Check for modifications,也能快速看到所有状态为 C(Conflict)的文件。
用 TortoiseMerge 图形化解决冲突
这是最常用也最稳妥的方式,适合大多数文本类源码文件。
- 右键冲突文件 → TortoiseSVN → Edit conflicts
- 窗口分三栏:左上显示服务器版本(.rXXXX),右上是你本地修改(.mine),下方是合并结果(Merged)
- 逐段查看带颜色高亮的冲突块,在左右任一栏对应行右键,选择:
• Use this block(采用当前这段)
• Use both blocks(两段都保留,按顺序拼接)
• 或直接在下方编辑区手动调整逻辑、删掉冲突标记 - 确认下方区域无
/ <code>=======/>>>>>>,保存文件 - 关闭窗口后,右键该文件 → TortoiseSVN → Resolve… → 勾选 Mark the file as resolved
提交已解决的冲突
标记解决只是告诉 SVN “我处理完了”,真正同步到服务器还需 Commit。
- 右键项目或冲突文件所在文件夹 → SVN Commit
- 确保已解决的文件被勾选,日志建议写清楚,例如:“resolve conflict in UserService.java:合并参数校验与日志增强逻辑”
- 点击确定,等待提交完成。此时文件状态恢复为已修改(蓝色加号)或未修改(绿色对号)
- 不建议使用“Mark as resolved”跳过编辑直接标记——那样文件里还留着冲突标记,后续编译或运行可能出错

















