如何导出具有依赖项的SVN存储库的一部分?

时间:2008-11-03 12:19:32

标签: svn svnadmin svndumpfilter

我正在尝试使用svnadmin dump迁移SVN存储库的一部分。

提供的svndumpfilter工具不管理导出中未包含的目录的复制/移动/重命名依赖项。

是否有可以管理这些依赖关系的工具?

3 个答案:

答案 0 :(得分:3)

我发现Simon Tatham编写了一个名为svndumpfilter2的Python脚本,它试图处理简单的依赖(但我发现了一些限制)。

您还可以查看article有关他迁移到Subversion的信息以及脚本的动机。

答案 1 :(得分:0)

对于依赖项,您指的是属性svn:external?

指定的那些

如果是,我认为您应该将属性中的路径引用传递给svndumpfilter。 例如,如果您的项目位于http://host/project且svn:external属性设置为http://host/dependencies,则可以执行类似

的操作
svndumpfilter include http://host/project http://host/dependencies < total.dump > project.dump

答案 2 :(得分:0)

你无法摆脱这个问题。如果您复制了目录/文件,则必须将(源和目标)都包含在svndumpfilter中。

但是,你可以做一些技巧:

如果转储的存储库不是来自版本0,而是说例如从修订版100开始,您将获得一个新的存储库,修订版1-100已消失。但是,您的目标存储库将修订版1中的所有文件/文件夹作为修订版100中的源存储库。这样,您可以在不丢失HEAD-Revision的情况下删除版本化数据。

您可以尝试转储/加载源存储库,直到第一次复制到“平面”存储库,然后将剩余的转储添加到其上。通过这种方式,您可以跳过麻烦的copy-from修订版,因为您的文件已经在拟合(目标)目录中。