我应该有1个还是多个存储库?

时间:2009-02-20 20:35:09

标签: svn version-control

我发现自己在问这个问题:我应该为这个客户的所有项目建立一个存储库吗?或者我应该为每个人建立一个单独的存储库?

你通常决定哪一个?

请列出导致您做出决定的两种方法的优缺点。

编辑:请为下列之一标记为重复:

One SVN repository or many?

Should I store all projects in one repository or multiple?

10 个答案:

答案 0 :(得分:5)

我有一个大型存储库,其原因与Ken的答案相同:

One SVN repository or many?

答案 1 :(得分:1)

我使用单个存储库来存储“所有内容”,因为它使项目之间的移动更容易 - 至少使用SVN。

答案 2 :(得分:1)

我为每个项目都有一个存储库,因为它使版本号保持独立。我遵循了TortoiseSVN帮助第4.1.5节“存储库布局”中的思路:

  

如果项目没有密切相关且每个项目都单独签出,则按项目编制索引是有意义的。

在这种情况下我使用SVN作为我自己的本地备份,所以对我来说很有意义。

答案 3 :(得分:0)

我在.NET开发商店工作,我们有两个Visual SourceSafe存储库。一个用于我们的遗留.NET 1.1应用程序,另一个用于我们较新的.NET 2.0 / 3.0 / 3.5应用程序。

答案 4 :(得分:0)

我只能想到一个原因,就是不把它全部放在一个存储库中。也就是说,如果您无权配置存储库所在的服务器,则需要将存储库的某些部分限制为不同的人员。

我们有一个集中管理的服务器,我们可以根据需要创建存储库,但不能更改配置。我们有一个主要的代码存储库,仅供内部使用,但需要创建其他存储库以与组织外的人员协作。

答案 5 :(得分:0)

每个TYPE项目都有一个存储库和访问它的人员类型。例如,我们所有的.NET项目都在一个存储库中,我们所有的遗留应用程序都在一个存储库中。这样我们的.NET开发人员就不会意外地使我们的遗留开发人员感到困惑(反之亦然)。

答案 6 :(得分:0)

我曾经为所有项目使用一个存储库,直到它变得如此之大以至于承诺项目真的变慢了 - 这与Subversion有关。如果你的项目要包含大量数据,特别是二进制数据,那么我建议使用单独的存储库。如果您主要只是存储代码,则单个存储库更易于维护。

答案 7 :(得分:0)

我使用了几个存储库 - 虽然我承认在组织代码时,我有一些强迫症,我喜欢非常有条理和不同的东西。

我在公司管理SCM回购,目前我们有三个:一个用于主要项目,一个用于包/库,一个用于第三方代码。如果我再次这样做,我也会为媒体文件创建一个单独的存储库(我们有许多需要在版本控制中的mp3 / wav文件),但是,它们在我们的主要仓库之下。

我认为使用多个存储库(除了经过精心组织)之外唯一有力的论据是,它可以更轻松地处理每个存储库的访问权限,而根据您的SCM环境,这可能不那么容易对于单个仓库下的多个路径。

答案 8 :(得分:0)

几乎所有东西都使用git。所以我每个项目都有一个存储库(无论是/ etc,编码项目还是用户配置文件)。

答案 9 :(得分:0)

如果您将一个存储库用于所有内容,则会使设置自动构建或继续集成变得更加困难。即使您现在不打算这样做,现在设置它也不是一个坏主意,这也为您提供了额外的好处,使您可以更轻松地管理您的内容。

一个好的经验法则是为每个不同的解决方案\项目组创建一个存储库。

如果您的解决方案不共享任何内容,请为每个解决方案创建一个存储库。另一个例子是,如果你有一个.NET 1.1版本的应用程序,并且你想创建一个2.0版本的应用程序分支你的代码并为你的新代码创建一个单独的存储库,这也可以用.NET 3.0和。 NET 3.5。