好的,我理解一个项目的存储库的trunk / tags / branches.
现在让我们说我有一个主项目和一些较小的辅助模块/插件/工具/脚本等.在早期阶段有很多重命名,重组等等,其中一些死于早期死亡,因为他们无处可去.在组织非常稳定之前,将特定模块粘贴到主干中是没有意义的. (根据svn设计,复制到后备箱是“便宜的”)
在开发过程的早期,将小模块(比如说“FooModule”)放在哪里是最好的地方?
> / branches / development / FooModule?
> / development / FooModule?
> / sandbox / modules / FooModule?
有没有人有类似方式组织subversion存储库的经验?什么对你有用?
最佳答案 这是一个非常有趣的问题,因为右起步有很多好处(模块化,低耦合……).无论如何,这就是我要开始的方式:
1)将所有东西放入后备箱:
http://svn/application/trunk/application
2)如果可以,尽早开始将代码拆分为模块
http://svn/application/trunk/application1
module1
module2
3)如果模块是稳定的,则将其上游移动到其自己的存储库中:
http://svn/module1/trunk
4)最后,当你有几个稳定的模块和应用程序时,你最终会得到
http://svn/application1/trunk
http://svn/application2/trunk
http://svn/module1/trunk
http://svn/module2/trunk
每个应用程序/模块都有自己的发布周期.
或者,您可以看一下Spring Framework正在做什么(如果你问我,那就非常好的组织)
http://svn/application1/trunk
http://svn/application2/trunk
http://svn/framework/trunk/module1
http://svn/framework/trunk/module2
我建议不要将代码分成每个模块的主干/分支,至少在项目开始时:只要你开始分支(而不是在主干上工作),就不能使用其他模块的主干的HEADS再:您要么必须同时分支所有项目,要么使用特定版本(1.0而不是SNAPSHOT).我不认为我很清楚,但如果我必须以不同的方式解释它,请告诉我.