SVN从branch合并至trunk失败,冲突文件如何正确合并?
SVN分支合并到主干失败的处理方案
问题背景
分支合并到主干时,10个文件仅部分合并成功,失败文件的共性是分支与主干均有独立提交记录:
分支sample.txt提交历史:
branch/sample.txt Rev 129 Rev 13 Rev 1
主干sample.txt提交历史:
trunk/sample.txt Rev 130 Rev 13 Rev 1
当前使用的合并命令:
svn merge 1:HEAD ^c:temp/branch/sample.txt ^c:temp/trunk/sample.txt
解决步骤
- 先同步本地主干到远程最新版本:
svn update ^c:temp/trunk - 针对单个冲突文件,基于**共同祖先版本(Rev13)**指定合并区间,只合并分支的增量变更:
svn merge 13:129 ^c:temp/branch/sample.txt ^c:temp/trunk/sample.txt - 处理冲突:用
svn status查看标记为C的冲突文件,手动编辑解决冲突后执行:svn resolved ^c:temp/trunk/sample.txt - 验证无误后提交合并结果:
svn commit -m "合并branch中sample.txt的变更到trunk,已解决冲突" ^c:temp/trunk - 批量处理多文件冲突时,可使用分支重集成命令自动识别增量:
svn merge --reintegrate ^c:temp/branch ^c:temp/trunk
关键提示
- 避免用
1:HEAD合并全量历史,基于共同祖先指定区间能大幅减少冲突 - 合并前必须确保本地主干工作副本是最新状态
内容的提问来源于stack exchange,提问作者92rwf0lXXW4m
相关产品推荐
相关产品推荐

