最近要搞多个项目的svn分支管理,不知道我的思路对不对,请大家提下建议...

2013-07-27 10:38:50 +08:00
 zhttty
我的想法是:

|---main:main目录下的所有文件都是主体是一直在开发的,也就是项目主线;
|---branch:分支目录下中的都是需要修改bug的文件,不同版本的目录;
|---tag:标签中的不同版本主要作为每个版本的备份打包;

情景模拟:
1、主体一直在开发,每到一个重要的版本(或上线版本),直接打包放入tag中,命名xxx-N.N版本,此版本是主体当前版本的一个镜像备份;
2、主体继续开发,此时测试组告知xxx-N.N版本有bug需要修改;
3、在branch做一个分支xxx-N.N-debug目录,里边是tag中xxx-N.N版本的镜像,在branch目录下修改就好了,不会影响主体;

疑问:
是不是branch中的文件修改后都要合并到tag?或者是一个小版本更新tag?
branch中影响巨大的修改都要合并到main?
还有我上面的思路有没不对或不足的地方?
各位有这方面经验的人是怎么理解main、branch、tag三大目录的?
怎么避免可能出现的合并冲突?
5127 次点击
所在节点    问与答
5 条回复
venngomez
2013-07-27 10:43:32 +08:00
tag是不可以合并的。
branch合并到main(trunk)
timonwong
2013-07-27 10:46:24 +08:00
main的理解没有问题,不过一般叫trunk...
不过tag是不修改的(一般放里程碑和正式的版本,修订的版本新建一个tag)。
branch里面的东西可合并可不合并,可以在里面做实验,性质上比较随意,不过svn的branch比较重,用起来不大方便,如果是在开发者本机做,可以推荐用git-svn, 用git的branch,到时候合并到上游。
timonwong
2013-07-27 10:51:04 +08:00
哦对了,如果想让git-svn的操作方便点,最好这样组织项目结构:
proj1/trunk, proj1/tags, proj1/branches
proj2/trunk, proj2/tags, proj2/branches

而不要这样:
trunk/proj1, trunk/proj2
tags/proj1, tags/proj2
branches/proj1, branches/proj2
zhttty
2013-07-27 12:40:05 +08:00
@venngomez
@timonwong

嗯,了解了。
flypiggy
2013-07-27 13:35:48 +08:00
svn让人想死的分支....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77125

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX