2009-12-27 59 views
1

我想将文件夹从一个存储库移动到另一个存储库(当然,保留所有历史记录)。我跟着一些问题的答案的“How to move a single folder from one Subversion repository to another repository?”特别是,我尝试的命令:加载存储库的转储部分不会产生任何影响

svnadmin.exe dump H:\Repositories\RepSource > W:\temp\RepSource.dump 
svndumpfilter.exe include "trunk\Sources\folderToMove" --drop-empty-revs --renumber-revs --preserve-revprops <W:\temp\RepSource.dump> W:\temp\RepSource_filtered.dump  
svnadmin.exe load "H:\Repositories\RepDest" < W:\temp\RepSource_filtered.dump 

RepDest的是,我只是为了测试创建了一个空库。倾销顺利进行;根据输出结果进行过滤,这表示所有文件夹都已丢弃,但是指定了一个。加载有一些问题;它具有输出:

 
<<< Started new transaction, based on original revision 1 
* editing path : trunk/Sources/folderToMove/theFile.mxml ...svnadmin: File not found: transaction '0-1', path 'trunk/Sources/folderToMove/theFile.mxml' 

“theFile.mxml”是,是“folderToMove”文件夹内的文件。

我注意到一些神奇:当过滤流,我添加了一个反斜杠结束包括路径:

svndumpfilter.exe include "trunk\Sources\folderToMove\" --drop-empty-revs --renumber-revs --preserve-revprops <W:\temp\RepSource.dump> W:\temp\ RepSource_filtered.dump 

输出如下:

<<< Started new transaction, based on original revision 1 

------- Committed revision 1 >>> 

<<< Started new transaction, based on original revision 2 

------- Committed revision 2 >>> 

<<< Started new transaction, based on original revision 3 

------- Committed revision 3 >>> 

<<< Started new transaction, based on original revision 4 

------- Committed revision 4 >>> 

<<< Started new transaction, based on original revision 5 

------- Committed revision 5 >>> 

<<< Started new transaction, based on original revision 6 

------- Committed revision 6 >>> 

<<< Started new transaction, based on original revision 7 

------- Committed revision 7 >>> 

<<< Started new transaction, based on original revision 8 

------- Committed revision 8 >>> 

<<< Started new transaction, based on original revision 9 

------- Committed revision 9 >>> 

<<< Started new transaction, based on original revision 10 

------- Committed revision 10 >>> 

<<< Started new transaction, based on original revision 11 

------- Committed revision 11 >>> 

<<< Started new transaction, based on original revision 12 

------- Committed revision 12 >>> 

<<< Started new transaction, based on original revision 13 

------- Committed revision 13 >>> 

<<< Started new transaction, based on original revision 14 

------- Committed revision 14 >>> 

<<< Started new transaction, based on original revision 15 

------- Committed revision 15 >>> 

似乎但是当我查看RepDest存储库(使用TortoiseSVN-> Repo Browser或VisualSVN服务器管理器)时,其中没有任何内容。它保持空着。 HEAD修订版本号是0。但是,如果我看着这个仓库有:

svnlook tree H:\Repositories\RepDest -r 5 

我再次看空库,但它承认版本号。所有版本号从1到15都正确处理。对于测试,“-r 16”会导致svnlook向我表示此修订不存在。

我也检查了RepDest存储库文件夹的大小 - 加载之前和之后都是一样的。

这里有什么问题?有任何想法吗 ?

+0

此外,我注意到以下几点: 只会出现此问题,如果“主干的\ Sources \ folderToMove”包含的文件和子文件夹。如果它只包含文件,导入将会成功。 我试图在包含选项中指定两个子文件夹和文件用空格分隔,但我得到相同的结果“文件未找到” – AntonAL 2009-12-27 12:30:04

回答

0

查看svnadmin load命令的帮助。您是否在存储库中加载目录时指定--parent-dir参数?否则,它会进入错误的目录。

您必须通过--parent-dir参数目录加载到一个不存在的目录在当前的存储库。从您显示的命令看来,您似乎没有指定该目录应该放在哪里。我不记得了,但我也相信你必须在加载之前在你的仓库中创建这个空的父目录。

,当然,备份和关机颠覆你做了svnadmin load之前。