【问题标题】:Moving files between independent repositories in SVN在 SVN 中的独立存储库之间移动文件
【发布时间】:2009-11-19 18:56:18
【问题描述】:

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

我在前两个步骤中找到了成功,但在最后一步遇到了障碍——加载。

从 SVN 书中,有一个示例表明目标 repo 中任何不存在的路径都将在加载过程中创建:

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.

但是,当我自己运行命令时(当然使用不同的路径),我得到以下信息:

<<< Started new transaction, based on original revision 78
svnadmin: File not found: transaction '990-tj', path 'myFolder/trunk/templates/default/fireWood'
* adding path : myFolder/trunk/templates/default/fireWood ...

然后我立即被踢到一个提示 - 不清楚该过程是否成功。在检查存储库时,没有创建新目录,也没有加载文件。什么都没有。

有什么想法吗?

【问题讨论】:

  • 我也遇到过这个问题,但是我解决不了。从一个 repo 到另一个 repo 是一个干净的转变,所以我最终只是清除了一个 repo 的所有内容并导入另一个 repo。但当然,我失去了所有的历史。
  • 尝试在 Subversion 邮件列表中提问。

标签: svn version-control tortoisesvn


【解决方案1】:

我最终明确地创建了 整个 目标目录结构,然后导入过滤后的转储。现在目标目录都存在了,导入成功了。

【讨论】:

    【解决方案2】:

    我只是在清理我的存储库并重新组织它们时运行了这种类型的命令。我基本上是将所有内容从一个 repo 移动到另一个 repo 中的新文件夹,加入类似的项目。

    我用过

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

    并用过

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

    d:\pathToNewRepo 是目标 repo 的路径,InternalFolder 是存放加载文件的新文件夹。如果我在加载之前创建 InternalFolder,这将有效。我在目标浏览器上使用 Toitoise SVN 的 RepoBrowser 创建了内部文件夹。

    刚刚尝试在不创建文件夹的情况下运行负载,我遇到了与您相同的错误。所以我想最简单的方法是添加一个命令来创建缺少的父目录。

    我在这里没有使用任何过滤。您也可以通过编写转储并一个接一个地加载来简化它:

    svnadmin dump d:\repoPathToMove | svnadmin load d:\pathToNewRepo --parent-dir InternalFolder
    

    避免创建转储文件

    【讨论】:

      【解决方案3】:

      有什么想法吗?

      虽然我无法帮助您解决错误,但我的想法是在不提供路径的情况下尝试加载。这些东西最终会出现在顶层,但是使用 SVN,您以后可以随时移动它。

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

      【讨论】:

        【解决方案4】:

        问题可能出在过滤中。 Svndumpfilter 不会处理所有类型的依赖关系,并且在某些情况下会默默地忽略必要的修订。

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

        【讨论】:

          猜你喜欢
          • 2012-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-12
          • 1970-01-01
          相关资源
          最近更新 更多