最近在用SVN进行提交代码的操做,忽略了一个分支的概念,一直认为咱们始终在一个代码仓内进行代码的修改和管理,直到本身在服务器上搭建SVN库的时候慢慢了解分支存在的意义。服务器
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上不少版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多我的共同开发同一个项目,共用资源的目的。开放源代码
当每一版本发出前,又须要进行新功能开发,即从当前主线copy一份和主线同样的代码仓,在不影响主线功能的前提下,开发新功能。设计
Copy出来的新代码仓即为分支Branch,原代码仓即为主线Trunk。版本控制
当创建的Branch功能不是开发新功能,而是稳定代码时,称为Tag。资源
新功能开发完后,需再手动由分支合并(merge)到主线.。开发
任何状况下,版本发布时,编译源码均已主线为准。源码
同一个功能(feature),不推荐同时存在2个以上的分支。io