在一些公司,大家肯定都是一个项目提交到底完事,也不用去管什么分支,什么代码影响之类的问题,比如公司内部项目,出个bug也没事,第天再改。但是在一些对于用户体验要求比较高的项目上,就不能这么干了,需要创建分支,开发,测试人员都是在分支上工作。最后提交到主干分支,用来上线。
svn它有3个目录,分别为trunk, branches, tags三个空的子目录。
trunk是主分支,用于我们线上部署,branches是分支,用于开发,修复bug等,tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
这个需要我们自己创建3个目录(这里我都是在eclipse上操作的)。如图:
现在我是项目管理人员,让属下开发了一个项目,如图:
common是公共代码,service是业务代码。现在我将这个项目提交到trunk目录下,也就是主分支
提交后,svn资源里就有了
那么下面的人就应该checkout代码,创建分支开发service的业务了。
1、创建分支(切换分支)
这里我拿整个项目创建分支来说
选择分支/标记
标注了开发人、项目名称以及版本
选择最新版本
自己决定,勾选上就会自动切换到分支上。不勾选就需要我们手动切换分支
分支上,有项目了。那么我手动切换下分支。
选择我才刚在分支上创建的目录
切换成功。
2、分支同步主干的公共代码
如图:在主干分支上增加了公共代码
分支进行拉取
选择第一个
从主分支拿取
如图:
同步过来了。
3、主干同步分支的代码,进行上线操作
下面我在分支上开始开发代码。
写好并提交。到了晚上要部署了,负责部署的人,开始合并分支代码了。
选择第三个
选择主干和分支
合并过来了
4、解决分支中代码冲突问题。
那么如果在开发过程中改变了公共方法呢(举例子,实际这么干会挨骂的)
主干代码
分支代码
主干开始同步分支代码,有冲突文件
查看冲突文件
根据分支进行对比
选择分支文件
冲突内容
解决冲突
解决好后,选择文件,标记为解决
一提交即可。解决起来很麻烦。
所以我建议大家不要惬意的修改公共代码。
分支上正常开发代码
总结:使用Merge a range of revision的时候,有冲突的文件会给标注,我们需要自己去处理冲突。
使用Merge two different trees,会直接根据目标版本更新,直接覆盖掉不相同的内容。所以这里一定要规定分支要合并主支以后,在操作主支合并分支。
这个根据大家的实际情况而定。
大家有疑问可以添加qq群:789318548, 也可以关注今日头条《老徐聊技术》我会解答。