3

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

4

4 回答 4

2

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

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

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

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

于 2012-05-30T22:08:15.700 回答
2

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

于 2012-05-30T22:12:47.120 回答
0

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

于 2012-05-30T22:04:59.880 回答
0

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

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

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

于 2012-05-30T22:21:38.090 回答