我们已经在工作中做了一些存储库跳跃,作为一个杂乱无章的人,我正试图将一些旧的历史重写到我们将在其中工作的新存储库。如何将SVN转储文件重新加载到存储库中的现有目录中?
我已经对我想要移动的旧树干和分支执行了svnadmin dump
。我已经对它们进行了处理,以便从转储文件的路径中删除trunk
和branches/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
到newRepo/fromOldRepo_ref/features/2169
的上述分支。在那之后,我想通过加载另一个转储文件在2169
中创建更多的提交,但它错误如上图所示。这个问题能解决吗?
展望未来,我知道我们的程序、工具和实践还有许多其他真正的修复,可以避免我将来想要这样做。但就目前而言,这并没有什么帮助。:]
发布于 2013-01-30 02:02:49
虽然--deltas
选项与svndumpfilter
不兼容,但--incremental
是兼容的。--deltas
将每次提交作为增量存储在转储文件中,从而节省磁盘空间。--incremental
捕获第一个条目作为概念增量(而不仅仅是节省磁盘空间),从而允许将目录的内容从转储文件加载到现有目录中。当第一次提交包含对文件夹属性的更改时,我还必须将转储文件的内容更改为change
而不是add
。
发布于 2014-08-23 05:22:53
当我收到此错误时,我正在尝试执行
svnadmin load
命令从cvs2svn工具创建的转储文件添加到现有项目结构中。我发现这是不正确的,因为当它试图创建主干文件夹时,抛出了“文件已经存在”类型的消息。相反,在IDE中,我在存储库中创建了一个远程文件夹,并将其保留为空。然后发出
svnadmin load --parent-dir <emptyFolderName> C:\SVN\repos\myRepo C:\temp\dumpFile.dump
这就是我成功的原因。
https://stackoverflow.com/questions/14589287
复制相似问题