SVN版本控制—branches、trunk、tag篇

 新建资源仓库时,可选择默认建立三个文件夹。这三个文件夹分别是【trunk】【branches】【tags】mysql

 

【Trunk】git

     通常用于存放目前项目主线,也就是项目全部功能模块的集合体,一整个项目全部代码库。通常来讲,存放在trunk中的代码都是稳定可正常运行的。sql

【Branches】数据库

     分支,其实也就是主线的拷贝,主要应用于在项目须要有新的开发时,不针对主线进行,而是在主线的基础上,拷贝一份或者多份。针对每一个模块小组,都可根据本身的开发状况,建立本身的分支进行开发,最后将分支一块儿合并到trunk上来,从而最后合并为一个项目。svn

     分支存在的意义就在于保证主线稳定版代码和新需求开发版代码的间的独立。目前在svn的使用上,最大的问题就是没有创建各自项目组的分支,全部模块均集中对trunk中主线进行操做。就像测试时直接操做生产数据库同样可怕,由于木有备份,出问题了恢复就比较麻烦。测试

【Tags】 .net

     标记是主线中一个特定版本的定型版。好比一个系统1.0开发完成,就会将主线的代码打一个tag,标记1.0开发完成。因此Tags中的代码只读的,也就是tags中的版本是不容许再动了。版本控制

下面就实际演示版本控制具体操做。资源

如何建立分支?

一、选择trunk中须要建立分支的主线文件夹,右击以下,选择Branch/tag: 开发

二、选择分支建立路径到branches文件夹下,版本号为当前最新版本 

 三、分支建立完毕,then新功能的开发即可从新定位到分支URL进行代码的更新提交而不对主线形成任何改动。 

四、最后还可经过版本分支图查看各个版本分支记录,定位分支从哪一版本分出去的,当前只作了一个分支,以下: 

如何建立tag?

建立tag和分支的流程彻底一致,惟一不一样的即是填写不一样的URL路径

建立成功后,查看服务端仓库,Tag 创建完成以下图:

 

如何将分支合并到主线?

一、右击须要合并的文件,选择merge 

选择合并类型:

 

 

【merge a range of revisions】——N to one

     适用于新功能开发即有在分支中进行,又有在主线中进行,将某个分支或主线上提交的多个版本间的变化合并到另一个分支上。

     "Revision range to merge"就是你要将trunk的哪一个版本所作的变化合并到branch中,能够是某一连串的revision,好比 4-7,15-HEAD,也能够是某个单独的某版本号。

【Reintegrate a branch】——One to One

     适用于在分支中开发新功能,分支开发结束后将全部的改动合并回主线上。

在这里,"From URL"选择/branches/MyProject,无需选择版本号,Reintegrate会将branch上全部修改合并到 trunk。branch将成功合并到trunk,你须要作的只是将合并后的trunk当即 commit!若是新加的功能已经开发完成了,你能够选择在合并后删除相关分支。 

    当选择将分支合并到主线上【merge a range of revisions】,结果以下图:

最后将branches中代码提交便可。

总结:

     SVN经过对三个文件的操做,主要目的还在于对历史版本的备份,三个版本相互独立,trunk负责保存当前稳定版本;branches 负责保持你分支版本,进行新需求开发;tags则保存最终发布上线版本,因此不可再修改。各司其职,各尽其责,使得开发过程当中版本控制有条不紊,几十我的的合做开发也不成问题。

相关文章
相关标签/搜索