5

我们在工作中一直在做一些存储库跳跃,作为一个组合,我正在尝试将一些旧历史重写到我们将使用的新存储库中。如何将 SVN 转储文件重新加载到现有目录中存储库?

我已经做了一个svnadmin dump我想移动的旧树干和树枝。我已经处理它们以从转储文件中的路径中删除trunkbranches/myBranch前缀。我也加载了一个到newRepo/fromOldRepo_ref/development.

$ svn copy --parents file://`pwd`/newRepo/fromOldRepo_ref/development@172 file://`pwd`/newRepo/fromOldRepo_ref/features/2169 -m "Branch to 2169 reference branch"

Committed revision 182.
$ svnadmin load --parent-dir fromOldRepo_ref/features/2169 newRepo < dumpfile
<<< Started new transaction, based on original revision 2171
svnadmin: E160020: File already exists: filesystem 'newRepo/db', transaction '182-53', path 'fromOldRepo/features/2169'
     * adding path : fromOldRepo/features/2169 ...

newRepo/fromOldRepo_ref/development@172然后我从to做了上面的分支newRepo/fromOldRepo_ref/features/2169。之后,我想2169通过加载另一个转储文件来创建更多提交,但它会出错,如上所示。这可以解决吗?

展望未来,我知道我们的程序、工具和实践还有许多其他真正的修复,可以避免我将来想要这样做。但目前,这无济于事。:]

4

2 回答 2

4

虽然该--deltas选项与svndumpfilter,不兼容--incremental--deltas将每个提交作为增量存储在转储文件中,从而节省磁盘空间。 --incremental将第一个条目捕获为概念增量(而不是仅仅节省磁盘空间),从而允许将目录的内容从转储文件加载到现有目录中。当第一次提交包含对文件夹属性的更改时,我还必须将转储文件的内容更改为更改类型,change而不是add.

于 2013-01-29T18:02:49.127 回答
0

当我收到此错误时,我正在尝试执行

svnadmin load

命令从cvs2svn工具创建的转储中导入现有项目结构。我发现这是不正确的,因为在尝试创建主干文件夹时会抛出“文件已存在”类型的消息。相反,在 IDE 中,我在存储库中创建了一个远程文件夹并将其留空。然后发出

svnadmin load --parent-dir <emptyFolderName> C:\SVN\repos\myRepo C:\temp\dumpFile.dump

这就是我的诀窍。

于 2014-08-22T21:22:53.310 回答