在SVN中的独立存储库之间移动文件

在SVN中的独立存储库之间移动文件,svn,version-control,tortoisesvn,Svn,Version Control,Tortoisesvn,经过一些研究,我发现可以将文件从一个回购协议移动到另一个单独的回购协议,并且仍然保留相关的历史记录。该过程包括将整个repo转储到文件,过滤转储文件中您想要的路径/文件(假设您不想移动所有内容),然后将所述转储文件加载到目标repo 我在前两步中发现了成功,但在最后一步中遇到了障碍——加载 从SVN手册中,有一个示例表明,目标回购协议中的任何不存在的路径都将在加载过程中创建: svnadmin load --parent-dir new/subdir/for/project /var/svn/r

经过一些研究,我发现可以将文件从一个回购协议移动到另一个单独的回购协议,并且仍然保留相关的历史记录。该过程包括将整个repo转储到文件,过滤转储文件中您想要的路径/文件(假设您不想移动所有内容),然后将所述转储文件加载到目标repo

我在前两步中发现了成功,但在最后一步中遇到了障碍——加载

从SVN手册中,有一个示例表明,目标回购协议中的任何不存在的路径都将在加载过程中创建:

svnadmin load --parent-dir new/subdir/for/project /var/svn/restored < repos-backup
<<< Started new txn, based on original revision 1
* adding path : test ... done.
* adding path : test/a ... done.
svnadmin load——父目录new/subdir/for/project/var/svn/restored
虽然我无法帮助您处理错误,但我的想法是尝试在不提供路径的情况下加载。这些东西最终会成为顶级的,但是有了SVN,你以后可以随时移动它


(您确实有一些存储库副本可以尝试所有这些,不是吗?

问题可能出在筛选中。Svndumpfilter不会处理所有类型的依赖项,并且在某些情况下会自动忽略必要的修订


在这种情况下,在添加文件之前,请检查是否在转储文件中正确创建了所有目录。

我刚刚在清理repo、重新组织repo时运行了此类命令。我基本上是将所有内容从一个repo移动到另一个repo的新文件夹中,加入类似的项目

我曾经

svnadmin dump d:\repoPathToMove > d:\backupFolder\repoName.dump
使用

svnadmin load d:\pathToNewRepo --parent-dir InternalFolder < d:\backupFolder\repoName.dump

为了避免创建转储文件,我最终明确地创建了整个目标目录结构,然后导入了过滤后的转储文件。既然目标目录都存在,导入就成功运行了。

我也遇到了这个问题,但我无法解决它。从一个回购协议到另一个回购协议,这是一个干净的举动,所以我最终只是清理了其中一个回购协议的所有内容,然后导入另一个回购协议。当然,我失去了所有的历史。试着在Subversion邮件列表上询问。
svnadmin load d:\pathToNewRepo --parent-dir InternalFolder < d:\backupFolder\repoName.dump
svnadmin dump d:\repoPathToMove | svnadmin load d:\pathToNewRepo --parent-dir InternalFolder