Subversion组织仓库的一般形式和标签和分支

      一般我们看到的开源项目,主项目并不是直接存在比如http://svnserver/shareproject目录,而是http://svnserver/shareproject/trunk这样的目录里,其实这就是Subversion对于项目的目录管理方式的体现。大部分项目在开始时,都有一条主线(mainline),大部分开发工作是在这里完成,项目可能存在发布分支目录(release branches),这里的代码通常不需要修改。此外为了记录重大事件通常还有tags目录。对于分支,subversion使用branches/目录,对于标签使用tags/目录表示。所以项目的主干和分支情况一般为:

Hello

├─branches

│  └─RB-1.0

├─tags

│  └─REL-1.0

└─trunk

    └─qq

      需要注意的是,Subversion使用的是目录拷贝来做分支和打标签,这种拷贝并不是完全拷贝,而是一种带有历史信息的索引转移。在项目建立之初,我们建议建好符合要求的目录格式,如果在建立之后,可以使用svn仓库地址信息和svn move和svn mkdir等命令来建立新的目录结构。如svn copy –m “message” svn://192.168.195.54/hello/binsvn://192.168.195.54/hello/trunk/bin将文件bin拷贝到trunk下。

      Subversion支持多个项目仓库虚拟目录功能。标签和分支也有一套命名规范(其中rel为发布号,bug是bug跟踪号):发布分支用RB-rel如RB-1.0.1a,发布用REL-rel如REL-1.01a,BUG修正分支BUG-track如BUG-3035,BUG前处理PRE-track如PRE-3035,BUG处理后用POST-track用POST-3035,开发者试验用TRY-initial-desc如TRY-MGM-cache-pages。

      标签和分支的作用在于,标签起到项目切片的作用,它的代码一般不再改动,形成的是项目的静态快照。而分支在于另起炉灶来完成新功能测试和对底层的大范围修改以及发布等功能。实践中subversion常用于四个功能:发布分支、发布、Bug修正、开发人员的试验。

你可能感兴趣的:(Subversion组织仓库的一般形式和标签和分支)