如何移除重新集成后残留的svn:mergeinfo属性?
处理SVN功能分支的清理步骤
嘿,我太懂你这种做完分支开发后想把环境理干净的心情了!先帮你复盘下之前的操作,再一步步告诉你怎么安全清理这个feature分支:
先回顾你的分支操作流程
- 当初你用
svn cp /trunk/app/module /branches/pete/feature-branch -m "创建功能分支,对应版本r393"创建分支,这完全是SVN创建特性分支的标准操作,没毛病 - 开发过程中来回合并主干和分支保持同步,这绝对是最佳实践,能有效避免最后合并时出现一堆棘手的冲突
安全清理分支的步骤
1. 先确认所有分支变更已合并回主干
这是最关键的一步,千万别跳过!
- 切换到你的主干工作区,执行命令:
svn mergeinfo --show-revs eligible /branches/pete/feature-branch - 如果命令有输出,说明还有分支上的提交没合并到主干,得先把这些变更合并到主干,解决冲突后提交版本
- 再次执行上面的命令,直到没有输出,就说明所有分支变更都已经同步到主干了
2. 删除远程版本库中的分支
确认没问题后,就可以删除远程分支了:
svn rm /branches/pete/feature-branch -m "清理已完成开发的feature-branch分支"
提交这个操作后(比如生成新的版本rXXX),远程版本库中的这个分支路径就会被移除
3. 清理本地分支工作副本(如果有的话)
如果你本地还保留了这个分支的工作文件夹,直接手动删除就行;或者先通过svn switch /trunk/app/module切回主干,再删除本地的分支目录
额外的安全建议
如果你担心删除后后悔,可以先给分支打个标签做备份:
svn cp /branches/pete/feature-branch /tags/pete/feature-branch-backup-rXXX -m "备份已完成的功能分支到标签"
把命令里的rXXX替换成分支最新的版本号就行,这样以后需要回溯的时候也有依据
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

