我在同一个SVN存储库下存储了几个项目。我按照手册进行了操作:svnadmin dump c:\repository | svndumpfilter include <my project> > myproject.dump
。
我的问题是,svndumpfilter因错误“无效的复制源路径”而窒息,因为我们不久前将该特定项目从分支移回另一个文件夹。
有没有人成功处理过这个问题?
我目前正在考虑以块的形式转储主存储库,跳过可能导致错误的修订。然后,我将每个块加载到新的存储库中,每个块都在一个文件夹下,然后使用Eclipse将它们合并。这听起来对你有用吗?你觉得它有什么问题吗?
答案 0 :(得分:0)
这个项目是如何移动的?有一个svn move
命令可用于移动文件/目录,更重要的是,让Subversion知道所述文件/目录已被移动。
svn move -m "Moved old/dir to new/dir" file:///url/to/old/dir file:///url/to/new/dir
由于您已经移动了它,我建议您尝试在项目的旧位置使用svn delete
。此应强制Subversion删除对旧位置的引用:
svn delete -m "Project was moved some time ago, reflecting in repository" file:///url/to/old/dir
答案 1 :(得分:0)
语法为:
svnadmin dump c:\repository | svndumpfilter include project > myproject.dump
这将包括项目下的所有内容。
有关详细信息,我添加了svndumpfilter帮助。
$ svndumpfilter help include
include: Filter out nodes without given prefixes from dumpstream.
usage: svndumpfilter include PATH_PREFIX...
Valid options:
--drop-empty-revs : Remove revisions emptied by filtering.
--renumber-revs : Renumber revisions left after filtering.
--skip-missing-merge-sources : Skip missing merge sources.
--targets ARG : Pass contents of file ARG as additional args
--preserve-revprops : Don't filter revision properties.
--quiet : Do not display filtering statistics.