idea svn 中分支的使用方法(简单介绍)
idea svn 中分支的使用方法
1.背景
在单纯的开发阶段时,一个svn主干就足够了,团队协作开发是没有问题的。但是,当项目上线之后,一个主干就不能满足需求了。
在开发过程中,如果要发布项目,是需要打包发布的,项目上线之后,会有一些新的需求需要开发,这些需求可能并不是当前阶段要上线的,或者是还没有经过测试环境测试的,是不允许打包到生产的程序包中的。但是现在只有一套代码,如果打包的话,不能上线的代码也会被打进去。这时,就应该区分开哪些是生产的代码,哪些是开发时的代码,这样,打包发布的话,只需要打包生产的代码就可以了。
这就用到了 svn 的分支管理。某个开发阶段,代码上线之后,将现阶段的代码拉出一个分支,与开发主干区分开,这样,发布的话,只需要打包生产分支的代码就可以了,开发分支中的代码,可以继续开发新需求,互不影响。
在大型的项目中,项目是迭代进行开发的。每开发到一个阶段,就要进行一系列的测试和发布。这个时候,分支的管理尤其重要。当开发到一个阶段之后,将主干的代码拉出一个测试分支,放到 branches中,然后测试人员拉取分支的代码,打包发布到测试环境,测试通过之后,将代码合并到之前的生产分支中。如果测试过程中发现了bug,那么就在该分支中进行修改,修复之后,再将代码合并到生产分支和开发主干中。而对于已经上线过的代码,可以将代码拉取分支放到tags中,进行生产版本的记录。
目前考虑的管理模式是,生产上上线一个版本之后,向tags中拉出一个记录,并且向 branches 中拉出一个生产分支。如果生产版本有小的改动,那么直接checkout生产分支代码,更改测试完成之后,将代码合并到主干中。
也可以看下这两位老哥的博客,帮助理解和应用:
https://blog.csdn.net/u011490595/article/details/80404392 idea 中的分支管理,着重操作
https://blog.csdn.net/justry_deng/article/details/82259470 svn的操作,有详细的讲解
2.svn目录的分配
分支的分配方法(推荐):
trunk:项目主干,主要作为开发的主干代码。
branches:分支,可以用作测试环境发布过程中的分支存放,或者bug修改时的分支。
tags:生产发布的版本记录,用来存放生产发布了的版本。
另外一种分配方法:
trunk:项目主干,用于存放已经没有问题的代码(经过测试的)。
branches:包含开发分支和测试分支,各分支中的代码验证没有问题之后,可以合并到主干中。然后主干中选择拉出一个生产分支。
tags:生产发布的版本记录。
3.分支的合并
注意:
(1)如果要将生产分支合并到主干,那么应该打开主干代码,svn – integrate file。
(2)分支合并到主干之前,要先将分支上的代码提交到svn,否则合并不到,以为是svn目录直接进行合并,不会对比本地代码。
1.整个项目的合并:
这时会报错,因为版本不同,要求先更新。但是并没有要更新的东西。而且,整个项目的合并,容易将别人的代码也合并了,所以这种方式暂时不采用。
2.单个合并修改的文件(推荐使用的方法):
因为对于已经上线的生产分支,修改不会太大,所以,对于自己修改的文件,进行合并分支操作,合并范围更小,而且可以避免合并了别人的代码。
方法就是,把生产分支和主干代码都checkout本地,在生产分支代码改动完,并且测试通过之后,将生产分支改动的代码都合并到主干上去,这里就要自己维护一个主干分支的改动代码清单,如果忘记改动了哪里,可以通过Local/svn History 查看,或者在 idea 中 ctrl+e查看编辑历史。
注意:source2的路径可能不正确(或者svn目录没有权限),需要自己找到真正的路径,然后配置上去。