上周接到PM大人的新任务,给主库做分支。
首先,先来看下SVN默认的三大文件夹,这三个文件夹建完库之后,一般默认会有,但是以前用的时候,还是比较简陋的,几乎都是大家提交到trunk里面,整个开发流程下来,一直用的是这个库。
那么,这三个文件夹都应该用来放什么东西呢?
分支(Branching)
分支起始的时候是主线的一个拷贝,但是其后他将保持独立性,拥有自己的变化。
有时你需要创建一个分支,例如你需要开发一个新功能,但是你又不希望新功能开
发完成之前影响主线的开发。
标记(Tagging)
标记是版本库中一个特定版本的快照。通常当项目进展到里程碑或者你预备发 布
release 版本的时候你需要创建一个标签。 虽然也可以对标记进行 Commit, 但是一般
都不这么做。
合并(Merging)
当分支开发进行到某个特定场景的时候,通常需要将更改合并到主线中。例如,如
果开发的心功能已经稳定,那么分支就可以合并到主干了。
这边的项目是,项目刚上线,但是有很多bug,也有很多新需求,所以,将现在主库中的代码放到了分支一份,然后大家重定位到分支库,修改分支库内容。当测试通过后,再合并到主库中。
如何分支?
在检出的trunk目录下的项目上,选择分支(其实分支和打tag操作是很一样的)。
之后,我们在服务器上看,就会看到branch目录下多出了"分支测试2";
查看版本分支图:
可以看出各个分支版本是从哪个版本分支出去的。
合并分支到trunk?
当我们有的多个分支开发完毕,这是就需要合并回主库。
当选择合并完成之后,发现本地工作副本变为修改过未提交的状态。
此时,我们还有将本地工作副本提交一下,才能真正合并。
其实SVN的管理还是比较集中式的管理,跟现在很多人用的集中式的GIT相比,SVN很少分支。。。N多。。。
最后想说,版本控制不是源码管理。。。。各位开发请自重。。。。