svn - 组织一个包含数千个元素的 Subversion 存储库

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

为了提供一些背景信息,这是针对数据仓库的。仓库功能需要全部 4,000 多个代码元素。也许某个业务需求需要更改在一些元素中访问的列,而另一个业务需求需要更改一些其他元素(可能来自其他项目的一些相同元素)。

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

希望其中一些是有道理的......提前感谢您的智慧!

最佳答案

您可以查看 externals属性(property)。它允许您定义附加此属性的目录的 check out ,还将 check out 存储库中的其他位置到该目录的子目录。

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

关于svn - 组织一个包含数千个元素的 Subversion 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859659/

相关文章:

windows - 可执行的merge.exe(从MSYS2中提取)未在Windows上运行

linux - Jenkins 在验证颠覆时出错

Linux 中使用 Active Directory 的 SVN

javascript - 我应该如何考虑我的 JavaScript 应用程序 namespace ?

多平台多语言项目的Golang代码组织

svn - 什么是 RCS 关键字?

svn - 为什么SVN合并没有任何更改的分支会导致未修改的文件修改SVN :mergeinfo property

linux - 如何撤消 'svn revert' ?

c++ - 嵌套命名空间,纠正静态库设计问题