Subversion子仓库

4
有没有一种稳定的方法,可以通过SVN将一个仓库维护为另一个仓库的子集?
例如,我可能有以下仓库:
1. phpCodeRepo 2. pyCodeRepo 3. contentRepo
其中1和2可以作为其仓库的一个元素,包含来自3仓库的某些数据。更新3会导致1和2(可选)版本增加。检出1或2也将检出3的正确版本。

“Hooks” 方法允许我执行一个 shell 脚本,它会说:“你想让 phpCodeRepo 和 pyCodeRepo 使用新的更新吗?”然后在每个仓库中更改一些数据(相关内容的版本号)。然后当检出 php 或 py 时,它们也可以检出它们的相关内容! - Aiden Bell
为什么你想要分开的代码库?通常来说,把所有子项目放在一个代码库中更容易管理和保持版本一致性。如果你需要把它们分开,可以为每个子项目使用单独的子目录,包含主干、分支等等。 - starblue
因为这些内容是在彼此独立的应用程序之间共享的,这些应用程序来来去去。我想不出比完全独立的项目驻留在同一个仓库中更脏的事情了(具有不同的开发模型、开发人员等),因为它们依赖于一个独立开发的公共项目。为什么Gnome不分享libc仓库呢 ;) - Aiden Bell
3个回答

4
你可以使用钩子来实现:hooks 此外,您可以在检出时使用外部资源:externals,以拉取其他存储库。

谢谢,看起来不错。我不知道可以调用外部程序。错误地认为它是内部事件。 - Aiden Bell

4

svn:externals 可能是一个解决方法。但它只适用于文件夹级别,因此您可以在多个仓库之间共享一个文件夹,但无法在单个文件上这样做。


谢谢Vadim;在我发布这篇文章之前我没有看到你的评论...抱歉。+1 - John Weldon
谢谢Vadim,这也看起来很有用! - Aiden Bell
我将保留Johns的答案,因为主要问题是内容与提交时其他存储库的可选关联,这可以通过一个快速的shell脚本实现。 :) - Aiden Bell

1
很简单:将3个文件夹添加到您的根存储库中(phpCodeRepo,pyCodeRepo,contentRepo)。您可能还想了解分支

我要求每个仓库都是一个独立的 SVN 基础。 - Aiden Bell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接