我对subversion很新,我想知道如何构建一个存储库。 正如我所读,'trunk'目录用于主要开发,'tags'用于快照版本,'branches'用于进行一些重大更改/测试而不会打扰主干。
问题是当有两个主要版本并行开发时:我不太清楚如何构建它。我以python语言为例,版本2和版本3都在开发中,我看到了这些结构的可能性:
1st one :
===========
repos/
python2/
trunk/
tags/
V2.5/
V2.6/
V2.7/
branches/
big_modif1/
testing2/
python3/
trunk/
tags/
V3.0/
V3.1/
V3.2/
branches/
big_modif43/
testing37/
2nd one :
===========
repos/
python/
trunk/
V2/
V3/
tags/
V2.5/
V2.6/
V2.7/
V3.0/
V3.1/
V3.2/
branches/
big_modif_on_v2.x/
testing2_on_v2.x/
big_modif43_on_v3.x/
testing37_on_v3.x/
3rd one :
===========
repos/
python/
trunk/
tags/
V2.5/
V2.6/
V2.7/
V3.0/
V3.1/
V3.2/
branches/
V2_trunk/
V3_trunk/
big_modif_on_v2.x/
testing2_on_v2.x/
big_modif43_on_v3.x/
testing37_on_v3.x/
您会选择什么(当然,您可以提出其他建议)?
答案 0 :(得分:3)
我认为组合可能是最好的。让我用你的例子解释一下:
所以我会关注"single project repo layout"(SVN red book中所述):
repos/
python/
trunk/
branches/
V2/
tags/
...
V2.7/
...
V3.2/
这里的要点是V2在版本3的开发开始时分支。你应该坚持以下合并规则:
答案 1 :(得分:2)
我们对SVN使用略有不同的存储库结构:
Trunk目前正在使用。
为所有开发工作创建开发分支。通常在所有项目中,我们都有一个主要项目使用的主要开发(或Alpha)分支,然后我们根据需要创建其他分支。
在部署期间创建标记以测试,uat,live等,然后在成功部署到生产环境后合并到主干。
如果并行工作(例如错误修复),一旦合并回主干,则将更改合并到任何剩余的活动分支。
任何源代码控制的秘诀就是确保团队遵循您同意的做法。
答案 2 :(得分:1)
任何布局仅为已接受的协议