从 git 迁到 svn,求教大家单位上 svn 都是怎么用的?

2015-09-08 18:02:36 +08:00
 zioc

trunk 为主开发目录, branches 为分支开发目录, tags 为 tag 存档目录(不允许修改)。但是具体这几个目录应该如何使用, svn 并没有明确的规范,更多的还是用户自己的习惯。

对于这几个开发目录,一般的使用方法有两种。

1.第一种方法,使用 trunk 作为主要的开发目录
一般的,我们的所有的开发都是基于 trunk 进行开发,当一个版本 /release 开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过 hook 来进行管理)。此时应该基于当前冻结的代码库,打 tag 。当下一个版本 /阶段的开发任务开始,继续在 trunk 进行开发。
此时,如果发现了上一个已发行版本( Released Version )有一些 bug ,或者一些很急迫的功能要求,而正在开发的版本( Developing Version )无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的 tag ,做相应的分支( branch )进行开发。

2.第二种方法,在每一个 release 的 branch 中进行各自的开发, trunk 只做发布使用。
这种开发模式当中, trunk 是不承担具体开发任务的,一个版本 /阶段的开发任务在开始的时候,根据已经 release 的版本做新的开发分支,并且基于这个分支进行开发。

第一种好还是第二种呢?

需求就是:
1.0 发布了,做 2.0 时,发现 1.0 有很急的 bug 要解决(需要发布 1.0.1 版),如果这些 bug 在 1.0 解决了,怎么更新到 2.0 呢?

8533 次点击
所在节点    git
90 条回复
582033
2015-09-09 07:04:08 +08:00
用 git-svn 呗,我也是从 git 换到 svn 。
adexbn
2015-09-09 08:03:36 +08:00
@582033 +1 。然而实际上最后都是 svn->git
hpeng
2015-09-09 08:04:23 +08:00
@incompatible 真特么规范!我现在公司全部在 trunk 开发…内网构建一周挂个 2 到 3 次……每次挂了的心情简直就是 doge
newghost
2015-09-09 08:35:10 +08:00
没觉得 SVN 有什么不好
imlinhanchao
2015-09-09 08:48:39 +08:00
V2 社区有一种同,当有人不同时,若他提出疑问,疑问将很难被解答,若他提出观点时,观点会被打压,若他分享时,分享的事物将被贬低。但这又有什么关系呢,任何人类社区,无论线上还是线下,都是不可避免的会朝这样的结果发展。因为,社区本来就是因为观点相似才聚在一起的呀~
xiaoyao9933
2015-09-09 09:07:05 +08:00
svn 确实有点反人类。。
Menng
2015-09-09 09:23:47 +08:00
第二种,发布时用 Git
yuankui
2015-09-09 09:59:21 +08:00
见过 svn 迁 git 的,还没见过 git 迁 svn 的
Navee
2015-09-09 10:05:21 +08:00
一大波喷子正在来袭
kobe1941
2015-09-09 10:07:15 +08:00
从 git 到 svn ,这种公司楼主你辞职算了
bbiao
2015-09-09 10:20:05 +08:00
先不吐糟楼主从 Git 迁移到 SVN 这种逆天的行为了,对于你的需求:

1.0 发布了,做 2.0 时,发现 1.0 有很急的 bug 要解决(需要发布 1.0.1 版),如果这些 bug 在 1.0 解决了,怎么更新到 2.0 呢?

其实你提到的两种使用 SVN 的开发方式都能满足,无非就是在发布 1.0.1 版的时候,都必须在 Branch 上开发。
zioc
2015-09-09 10:26:36 +08:00
@incompatible 谢谢。很受用!
@jhdxr 谢谢分享!
@582033 @Tedko git-svn 可靠吗,是不是可以这样:本地 git ,远程 1 git ,远程 2 svn 。维持原有的 git remote 做小组内部更新(较频繁的提交),用 git-svn 每天一次提交 git 的代码到 svn
holmesabc
2015-09-09 10:57:43 +08:00
公司 svn 就只做一个仓库来用. 一个在开发的, 其它都是 tag.
反正主线 分支 tag 都是完全的文件 copy

跟 git 思想不一样, 还是不要完全搬 git 的规则的好.

就用 1 方案好了. 感觉 svn 目录切来切去很麻烦的.
est
2015-09-09 11:00:31 +08:00
切 svn 好用多了啦。开发进度没法保证,直接强制 commit 就说代码掉了,然后扯一天皮。
Tedko
2015-09-09 11:11:32 +08:00
@est hhhhh ,别忘啦 git push -f 也可以诶啊
est
2015-09-09 11:21:15 +08:00
@Tedko git 的好处是分布式的,你不小心 push -f 弄掉的,别人如果有 HEAD 可以再 push -f 回来。。。 svn 就不一样啦。没了就没了,一 update 大家都没了。而且断网大家的代码就没法同步啦。只能干瞪眼啦。特别适合制度性官僚作风开发团队。
ttma1046
2015-09-09 11:29:35 +08:00
从 git 到 svn ,这种公司楼主你辞职算了
cnhongwei
2015-09-09 11:51:42 +08:00
楼主在错误的道路上越走越远。
9hills
2015-09-09 12:12:42 +08:00
用 SVN 后就别折腾分支了, release 的时候开一个 release 分支相当于坐下 snapshot 就行了

你要是开发的时候自己折腾分支,那是自寻苦吃。。。
Clarencep
2015-09-09 13:16:47 +08:00
无论是 git 还是 svn ,都可以采用相似的流程来开发。
只是建议不要直接在 trunk 上开发,就像 git 一般不推荐直接在 master 分支开发一样,而是针对每个 feature 建立一个 branch ,然后在这个 branch 上开发测试完成后,再合到 trunk 上。
至于老版本的问题,在老版本的 tag 或 branch 上修复完后,要及时合入 trunk 就行了。

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

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

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

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

© 2021 V2EX