SVN 如何把主干上的修改合并到分支上来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN 如何把主干上的修改合并到分支上来相关的知识,希望对你有一定的参考价值。

情况是这样的,现在公司项目分布到全国,各省有相同模块,有不同模块,现在是把相同模块作为主干,不同模块作为分支,如果在主干修改后合并到每个分支上去同步。目前只是在分支上一个个把主干合并过来,能不能直接在主干上一次性分发一样合并到每个分支上

那就写个脚本好了,在主干成功commit后,就执行脚本对每个分支挨个进行update、merge、commit

再高端一点可以把脚本放到post-commit钩子里,每次commit成功后由SVN服务器自动调用这个脚本,在脚本里判断只要是trunk上的commit,就对每个分支挨个进行update、merge、commit

但这个脚本自动执行可能会有问题,主要是主干和分支可能发生冲突,所以还是手动处理比较好
参考技术A

    用脚本批量合并到分支,然后将仓库同步到各省,各省再来update。

    把相同的模块作为trunk,不同的模块作为branches,这些模块都在一个目录。

    svn具备部分检出功能,每个模块可以建立一个目录,然后在目录下建立 trunk-branches-tags结构,设置好属性,也可以用git+submodule。

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。

ECLIPSE下SVN的创建分支/合并/切换使用

最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发。分支上的bug修改完,发布后,可以合并到主干上。项目程序可以在主干和分支之间进行切换,来实现主干和分支的同时维护。

1.创建分支

创建分支实际上就是将程序copy一份到指定的分支目录,如下图示:

技术分享

在项目名称上点击右键,弹出菜单,选择"Team",再选择"Branch/Tag",弹出下面的页面: 

技术分享

上图中的"Copy to URL"填写创建新分支的路径地址,后面会将程序copy到该目录下,形成新的分支。点击"Next":

技术分享

选择当前最新的版本,点击"Next"

技术分享

如果勾选了上图下面的switch working copy to new branch/tag,eclipse的程序项目会自动切换到分支下。这里我们不选择,待会自己切换。

这样就创建了一个1.0的分支

2.合并

可以从主干合并到分支,也可以从分支合并到主干,根据需要可以选择合适的选项,如下图:

技术分享

上图中的选项:

  1) 从主干合并到分支

  2) 从分支合并到主干

  3) 将主干上的修改合并到分支

  4) 合并2个分支到主干

  5) 从主干到分支,手工指定不需要合并的修改

  6) 从主干到分支,手工指定要合并的修改

技术分享

上图显示没有任何修改,所以不用进行合并。

3.切换

在项目名称上点击右键,选择"Team" –> "switch to another Branch/Tag/Revision"。

技术分享

选择需要切换的目的地址,点击ok即可。

这样,在项目里就可以在主干和若干分支间进行任意切换,来实现对不同版本/分支的程序进行修改提交操作。

参考:
Overview of CollabNet Merge Client
https://desktop-eclipse.open.collab.net/servlets/ProjectProcess?pageID=MEuUjb&freeformpage=Merge%20Client

eclipse中将SVN分支合并到主干的方法
http://www.darrenfang.com/merge-branches-to-trunk-in-eclipse.html

本文转自:http://www.blogjava.net/paulwong/archive/2014/05/27/414162.html

以上是关于SVN 如何把主干上的修改合并到分支上来的主要内容,如果未能解决你的问题,请参考以下文章

svn打分支和合并操作

SVN - 主干/分支

ECLIPSE下SVN的创建分支/合并/切换使用

SVN工具如何创建分支和合并分支的

svn合并分支到主干

svn合并分支到主干