最近补习了下SVN的分支相关概念,主要是公司需要,所以即使SVN分支相关命令弱成一坨💩,也要老实开搞啊

一、相关概念

  • trunk 主干
  • branches 分支
  • tags 标记

tags和branches只是创建了指向某个版本的链接,而不会真正将此版本的内容复制到分支或者标记中

二、策略

主要有两种:

  • 一种是主干作为新功能开发主线,分支用作发布
  • 另一种是分支用作新功能开发,主干作为稳定版的发布。

我们选择的是后者。

三、流程

  • branch开发
  • 测试branch
  • branch稳定后合并到trunk并测试
  • 解决合并后产生的conflict和bug
  • trunk稳定后 tag release
  • 删除或锁定已合并的branches

四、注意事项

  • 如果branch存在周期较长,切记定期merge trunk代码到branch,避免出现其他branch代码合并到trunk后容易出现的conflict
  • tag中的代码不应该被修改
  • 如果合并过程中发现bug,此时应新建branch用于修复bug,修复bug后合并到trunk

五、总结

如果你按照四里面说的去做,你会知道什么叫做痛苦,来回合并各种分支代码。其实如果分支不多的话,有一个比较简单的方法,不需要去做各种合并,也不需要使用极其难用的svn merge命令,只需要将主干代码更新到最新,分支该提交提交,然后用文件对比工具一对比,将改动同步到主干去就行了,自己在分支上做的变动,心里应该有数。