这是一个非常有趣的问题,因为正确开始有很多好处(模块化、低耦合......)。无论如何,这就是我将如何开始:
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)。我认为我不是很清楚,但如果我必须以不同的方式解释,请告诉我。