SVN签出多个项目

时间:2012-05-30 22:00:16

标签: svn

假设我有一个包含许多项目的相当大的存储库。我实际上在大多数项目上工作。我是否应该在本地拥有“一个大工作副本”,这需要利用稀疏目录功能来获得我需要的东西,或者每个项目都有自己的工作副本。有什么优点和缺点?

4 个答案:

答案 0 :(得分:2)

我想说影响采取哪种方法的两个最大因素是:

  • 所有项目是否共享大量库代码?
  • 您是否在所有项目的同一分支机构工作?

如果所有单个项目共享大量库代码并被认为是同一软件套件的一部分,则有一个工作副本是有意义的,因为它可以最大限度地减少重建量并确保在一个项目中进行更改在另一个中可见(这可以最大限度地减少破坏构建的机会)。

另一方面,如果这些项目中的每一个可能都是针对不同的客户端,并且每个项目都有不同的时间尺度,需要在不同的分支上完成(项目A处于RC阶段,只需要showstopper bug-fixes ,项目B处于alpha阶段,可以进行大量修改)然后选择单独的稀疏工作副本方法。

答案 1 :(得分:2)

我有同样的情况。我检查了一个结构中的所有项目,而不是使用稀疏目录。然后,只需选择所需的文件夹并提交/更新,即可一次更新所有项目,或一次更新一个项目/文件夹。这样你就可以在需要时获得spase目录的好处,或者完全更新/提交,而不是一个一个地完成。我的收藏大约是5GB,60k文件,并且每个项目级别或完成它仍然非常快。

答案 2 :(得分:0)

每个项目,以便每个提交(和回滚)特定于该项目。如果您计划使用capistrano或任何其他部署工具,也很重要。您还限制每个项目的访问权限。

答案 3 :(得分:0)

正如@the_mandrill所说,这取决于你的项目是否是一个连贯整体的一部分,例如,jar文件组合在一个Java EE Web应用程序中。

在类似的情况下,我使用一个伞形项目来保存整体构建配置,并通过svn::externals引入子项目。在Java世界中,这很好地映射了基于Maven的构建实践,即使存在一些缺点。

我计划尝试使用Visual Studio项目和解决方案的类似方法,但到目前为止我只做了简单的实验。