提倡一个仓库对应一个项目,此项目可能产生许多小项目,其它项目可能借鉴之前项目的某个模块。针对svn,我们是这样实现的。
考虑到权限设置的问题,我们设计的目录结构如下:
branches
sub_project1
branch1
branch2
branch3
sub_project2
sub_project3
labels
sub_project1
sub_project2
sub_project3
trunk
common
trunk只做通用代码,对于特殊代码写到分支中去。在本地拉全套代码时,使用脚本将分支中的代码覆盖common中的相同代码。有的时候会出现之前是common的代码后来却不是common了,此时我们会在trunk上删除此非common的代码。