多个项目的SVN检查

多个项目的SVN检查,svn,Svn,假设我有一个相当大的存储库,其中包含许多项目。事实上,大部分项目都是我做的。我应该在本地拥有“一个大的工作副本”,利用稀疏目录特性来获取我需要的内容,还是每个项目都有自己的工作副本。优点和缺点是什么?每个项目都有一个项目,因此每个提交(和回滚)都是特定于该项目的。如果您计划使用capistrano或任何其他部署工具,这一点也很重要。您还可以限制每个项目的访问。我想说,影响采取哪种方法的两个最大因素是: 所有项目都共享大量库代码吗 您是否在所有项目的同一分支机构工作 如果所有单个项目共享大量库

假设我有一个相当大的存储库,其中包含许多项目。事实上,大部分项目都是我做的。我应该在本地拥有“一个大的工作副本”,利用稀疏目录特性来获取我需要的内容,还是每个项目都有自己的工作副本。优点和缺点是什么?

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

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

  • 所有项目都共享大量库代码吗
  • 您是否在所有项目的同一分支机构工作
如果所有单个项目共享大量库代码,并且被视为同一软件套件的一部分,那么拥有一个工作副本是有意义的,因为它可以最大限度地减少重建量,并确保在一个项目中所做的更改在另一个项目中可见(从而最大限度地减少破坏构建的机会)


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

我有相同的场景。我在一个结构中签出了所有项目,而不是使用稀疏目录。然后,只需选择所需的文件夹并提交/更新,就很容易一次性更新所有项目,或者一次只更新一个项目/文件夹。这样,您可以在需要时获得spase目录的好处,或者获得完整的更新/提交,而不是一个接一个地进行更新/提交。我收集了大约5GB、60k个文件,无论是每个项目级别还是完成,它仍然非常快。

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

在类似的情况下,我使用一个包含整体构建配置的伞形项目,并通过
svn::externals
引入子项目。在Java世界中,这与基于Maven的构建实践相当吻合,尽管存在一些缺点


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

您仍然可以使用稀疏工作副本提交和回滚部分签出。