我在不同的主机(host-a和host-b)上有两个现有的颠覆存储库,我想将一个目录从 repo A 复制到 repo B。
基本上https://host-a/repo/some/path/moduleA
应该复制到https://host-b/repo/some/other/path/moduleA
. 应保留所有历史记录,并应保留host-b中的现有数据。
这两个存储库没有任何冲突的目录层次结构。这些存储库没有共同的祖先。
我在不同的主机(host-a和host-b)上有两个现有的颠覆存储库,我想将一个目录从 repo A 复制到 repo B。
基本上https://host-a/repo/some/path/moduleA
应该复制到https://host-b/repo/some/other/path/moduleA
. 应保留所有历史记录,并应保留host-b中的现有数据。
这两个存储库没有任何冲突的目录层次结构。这些存储库没有共同的祖先。
你检查过svnadmin dump
和svnadmin load
组合吗?根据Subversion 红皮书,它们可用于将一个存储库与另一个存储库合并:
转储格式还可用于将几个不同存储库的内容合并到一个存储库中。通过使用 svnadmin load 的 --parent-dir 选项,您可以为加载过程指定一个新的虚拟根目录。
更新:
Juha,回应您的评论:我认为有一个名为svndumpfilter
(请参阅红皮书中的本节)的命令可能会有所帮助。
您可以为此使用svn:externals。这将消除将文件从一个存储库复制到另一个存储库的需要,并且还将继续使这些文件夹在每个存储库中保持同步。您还可以访问完整的提交日志。