SVN分支(branches)合并(merge)到主干(trunk)和拉取分支(tag)

  •   
  • 10113
  • Linux
  • 29
  • super_dodo
  • 2017/03/08

在一个团队协作且不断迭代更新的项目开发中,经常会使用到svn的一些分支主干的方法,这样的好处是使得各个版本之间可独立开发,大多数情况下是branch分支主要用来开发新的功能和版本迭代,主干上面及时快速的修复线上的一些bug和优化,当分支的新功能开发和测试的差不多的情况下,就需要把分支合并到主干上面,为新版本上线迭代做准备。小编dodo使用的是TortoiseSVN客户端。

从主干(trunk)上拉取新的分支(branchs/tag),这个比较简单按照流程即可.在主干项目文件的时候,如下图所示.

svn_branch_tag_1

svn_branch_tag_2

这样新的分支就拉取成功了,图示上面我拉取的beta5.0的版本,svn的目前版本号是1303.

之后呢,主干陆陆续续的小范围改了一些bug,分支beta5.0有增加了大量的新功能和特性,beta5.0的本地测试已经差不多,准备合到主干上,随时等待上线。下面我们就来进行把分支branch(beta5.0)合到主干trunk上面。温馨提示,请先自己脑补一下本地和服务器之间关系,当你没有commit提交的时候,都是你本地的,所以也不用太担心。另外中途出错或者不确定的时候,请revert(回退版本)。

第一步:先把本地的主干和分支分别对应服务器上面的 update到最新 commit提交到最新。

第二步:为了更保险,请先把主干和分支的都Export到本地另外的文件夹,以备最坏的打算(未知冲突过多)。(高手请略过)

第三步:先把本地的主干(trunk)合到本地的(branch)上.选中branch项目,右键---TortoiseSVN---merge---next(按照图示步骤一步一步的执行下去).

svn_merge_1

svn_merge_2

svn_merge_3

svn_merge_4

第四步:这个时候在本地的主干(trunk)项目目录进行,操作流程和第三步几乎一致,唯一不同的地方是从分支合并到主干(如下图).

svn_merge_5

第五步:如果有冲突的话,请想办法解决或者忽略。如果一切顺利的话,你本地的trunk就是合版本后的完整版本,branch也是。这个时候可以不用考虑branch了,因为大多数情况下branch已经完成了它的使命(如果有新版本,又会拉取新的分支).把本地主干trunk提交到服务器上(svn commit).至此你合版本的工作已经大功告成。可以去泡一杯coffee享受一下38妇女节的节日氛围。

PS:合版本有很多的方式和工具,phpstrom,smartsvn等,欢迎各位分享总结。svn里面还有很多高级的功能,请自行尝试。合版本拉分支是大多数程序员必备的知识。dodo有些落伍汗颜,之前都是独立做,都是在trunk上面做,今天也是初次尝试学习。也请各位多多抛砖和指引。今天38妇女节,祝愿伟大的女性同胞们,节日愉快,幸福美满。

回眸一笑百媚生,倾城蒲玮更多情,笑看胜负,年华本如梦,玫瑰铿锵,风雨之后见彩虹。