开始之前:我在许多论坛(包括 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 服务器,它工作得很好,因为有很容易定义的项目。我只是不知道如何组织我们的主要代码库。
希望其中一些有意义......提前感谢您的智慧!