2

开始之前:我在许多论坛(包括 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。没有办法对哪些程序或文件属于一个组进行分类。正因为如此——我不知道如何将我们的代码组织成颠覆。我可以将所有内容都放入主项目主干中,但检查工作副本意味着检查所有 4,000 多个元素。

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

也许 Subversion 不是最适合我们的,尽管我必须相信它可以工作。我们已经为我们的 Web 代码和 Java 程序提供了一个 Subversion 服务器,它工作得很好,因为有很容易定义的项目。我只是不知道如何组织我们的主要代码库。

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

4

2 回答 2

2

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

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

于 2009-05-13T19:12:11.920 回答
1

在将文件转储到颠覆存储库之前,我会尝试组织文件的文件夹结构。

我认为您的问题主要在于现有文件的杂乱无章。如果您能找到一种方法将您的系统在逻辑上划分为多个部分,那么允许人们只检查文件块(将在逻辑分组中)会更容易。

Subversion 确实反映了一个文件系统,所以如果它在文件系统中看起来不漂亮,那么它在 subversion 中也不会看起来漂亮。

如果您想避免重新组织文件,也许您可​​以找到一个版本控制系统,它可以让您根据标签签入/签出内容,而不是它们在文件系统中的位置。

于 2009-05-13T18:59:08.943 回答