eclipse中svn分支、合并

  • 使用分支的场景 
  1. 要对某一个模块做重大调整,而不想别人打扰你或你不想打扰别人的工作,因为你修改的内容比较多,在没有完全改好并测试过之后就提交的话,别人更新后的程序就用不了了,但是如果你一直不提交,等到你完全改好后再提交,那svn的版本管理的作用体现在哪里?通过分支可以避免这个问题。
  2. 主干已经开发完成,要进行发布,那把主干复制到分支,然后分支主要进行bug的修改和完善,而主干继续进行新特性的开发。比如我们要对框架进行升级工作,我们在目前的主干开发了差不多的时候,就可以准备发布1.0版本了,那我们把主干的复制到一个叫版本1的分支,在修复测试、发布1.0版本的同时,主干继续进行2.0的开发工作。当分支有bug修复的时候,同步到主干。

Trunk:主干。新建的项目第一次上传到svn上面,就上传到Trunk目录下面,后续所有的版本迭代的推进都是在主干项目上面进行。

Branch:分支。解决新功能开发的过程中,线上的代码有问题或临时加入某个紧急的小功能,不能及时打包的问题。主干开始下个版本新功能开发前,打出分支项目到Branch中,在主干新功能开发完成前,线上需要修改打包时,都从分支上操作。分支上的改动都通过merge合并到主干上面。

Tag:稳定代码标记。当分支已经稳定,不再做任何修改且要从主干打出新的分支时(新的功能发布上线后),就把上一个分支的项目放入到tags里面,并标记v1、 v2、v3....版本。客户端代码应该做相应的版本备份,以防还原版本。

merge:合并代码。主线合并到分支、分支合并到主干都可以。举例分支合并到主干(在主干上操作):按照上面的思路,分支有改动就要合并到主干上面,保证主干上面是最全面的代码(项目结构变动太大,分支上面的改动不用保留除外)。注意:每次合并前必须要把两个项目都提交更新,否则会出错。

switch:切换,主干和若干分支间进行任意切换svn地址,切换后当前空间的代码也会跟着改变,和svn地址上的代码同步。

注意:每次提交代码前必须先更新,即使当前操作的是分支且分支没有任何人提交过新代码,但是主线有人提交过新代码,在提交分支的时候,也必须要先更新。

 

  • 创建分支

1、选中项目——》右键——》team——》分支/标记eclipse中svn分支、合并_第1张图片

 

 

 

2、资源库到URL路径,填写创建分支的路径及分支项目名称,后面都是默认选项即可。Svn的分支和标签操作都是复制一份副本。可能有人觉得,如果创建太多分支的话,不停的复制,服务器会不会太多东西了,负荷太重了,这个大可放心,svn的复制操作并不是真正的复制一份同样的数据,它只是创建了一个链接而已,一个到主干的 连接。在你对分支没做任何修改之前,分支都只是一个链接,当你对分支的文件作了修改后,该文件在分支那才会真正的创建一个文件。

 

  • 合并(如果要把分支合并的主干,这里操作的是主干项目,merge from是分支的路径):

1、选中项目——》右键——》team——》合并eclipse中svn分支、合并_第2张图片

2、选中第二个选项,next,注意合并前两个项目都必须全部更新、提交、更新,否则会出现下面的错eclipse中svn分支、合并_第3张图片

3、出现上面的错误后返回,把项目更新、提交、更新后,重复上面的操作eclipse中svn分支、合并_第4张图片

4、merge from:要把哪个项目合并到当前项目的路径,next,后面是默认选项,当主干和分支都共同修改了同一个文件的同一个方法时就会产生冲突,出现下面的弹框

eclipse中svn分支、合并_第5张图片

5、以上几个选项通过工具翻译后是:

a、马克是矛盾的。我以后再处理。

b、解决冲突使用我的版本的整个文件。

c、用我的更改解决本地文件中的冲突。

d、通过使用整个文件的输入版本来解决冲突。

e、使用来自传入文件的更改解决本地文件中的冲突

f、让我编辑插入了冲突标记的文件。

g、启动图形冲突解决编辑器

其中a是 把分支的内容更新下面,并和本地冲突的代码分别标记出来,其中working是当前空间的代码,例如:

<<<<<<< .working
        System.out.println("主干测试1===========================");
=======
        System.out.println("分支测试1=======================");
>>>>>>> .merge-right.r22331

b和c是保留当前空间代码(这里指主干),d和c是分支替换主干的代码,g是以图形的界面直观的显示出冲突的地方(建议选择g,每个冲突文件进行对比),如下图eclipse中svn分支、合并_第6张图片

6、关闭当前的类,弹出,选择yes,依次操作ok,最终结果和a是一样的。

eclipse中svn分支、合并_第7张图片

eclipse中svn分支、合并_第8张图片

5、合并完成后,会把分支上改动的内容更新到本地主干上(注意:这里只是更新到本地),提交本地代码到svn上面。

你可能感兴趣的:(其他,svn分支,svn合并)