组织数千个元素的Subversion存储库

时间:2009-05-13 18:38:54

标签: svn code-organization rcs svn-organization

在开始之前:我在很多论坛上花了很长时间(包括Stack Overflow - 是的,有很多关于组织svn的SO问题),搜索Google和阅读文档(我拥有一些Subversion书籍)。我还没有找到一种在Subversion中组织代码库的好方法。我们目前使用RCS作为我们的版本控制系统,所有存储在1个RCS目录中 - 丑陋,我知道 - 这就是为什么我正朝着更好的方向努力。我也经常使用Subversion,所以我知道它的功能以及它是如何工作的。我已经犹豫了几个月问这个问题,因为它不是完全与编程有关,但由于我无法找到解决方案,有什么更好的地方可以提出我的问题!

令我感到困惑的是颠覆术语“项目”。如果我想在subversion中管理一个java项目,这对我来说非常有意义:所有结合到jar文件中的java文件都可以被认为是“项目” - 它们都属于一起。但是,在我们的环境中,我没有看到一种简单的方法来定义“项目”是什么。我们有超过4,000个程序,所有程序都非常独立。其中许多是shell脚本或perl脚本。我们的一些脚本使用通用的“实用程序”或“库”脚本,但在大多数情况下,所有代码对象都是独立的。

我们环境中的一个“项目”可能涉及程序A,B和C以及配置文件AA。另一个项目可以使用程序C,D和E,以及配置文件BB。另一个项目可能只是更改配置文件AA,或者可能是程序B.没有办法对哪些程序或文件属于一个组进行分类。因此 - 我不知道如何将代码组织成subversion。我可以把所有东西放到一个主项目主干中,但是然后查看一个工作副本意味着检查所有4,000多个元素。

为了给出一些上下文,这是针对数据仓库的。仓库功能需要所有4,000多个代码元素。也许某个业务需求需要更改在一些元素中访问的列,而另一个业务需求需要更改其他一些元素(可能是其他项目中的一些元素)。

也许Subversion并不是最适合我们的,尽管我不得不相信它可行。我们已经为我们的Web代码和Java程序提供了一个Subversion服务器,它运行良好,因为有很容易定义的项目。我无法弄清楚如何组织我们的主代码库。

希望其中一些有意义......提前感谢您的智慧!

2 个答案:

答案 0 :(得分:1)

您可以查看externals属性。它允许您定义附加此属性的目录的签出,还将检查存储库中的其他位置以查找该目录的子目录。

因此,您可以为每个组件创建“真实”目录,然后为每个项目创建单独的目录,这些目录将使用外部来检查所需组件。

答案 1 :(得分:0)

我会尝试组织文件的文件夹结构,然后再将其转储到subversion存储库中。

我认为你的问题主要在于现有文件的混乱。如果你能找到一种逻辑上将系统划分为段的方法,那么允许人们只检查文件块(这将是逻辑分组)会更容易。

Subversion确实镜像了一个文件系统,所以如果它在文件系统中看起来不漂亮,那么它在颠覆中也不会很漂亮。

如果你想避免重新组织文件,也许你可以找到一个版本控制系统,它允许你根据标签检查/输出东西,而不是它们在文件系统中的位置。