svndumpfilter 失败并显示“无效的复制源路径...”错误
我想将我的 SVN 存储库的一部分移至异地,转移到 AWS 实例上我正在关注此页面(存储库维护)
我已经采取了 整个存储库的转储(Windows 命令):
svnadmin dump c:\repo > all_repo
接下来是过滤它,仅包含我感兴趣的项目(称为“M1”)。
- 输入 all_repo | svndumpfilter 包括 M1 --drop-empty-revs > m1
我知道这是正确的,因为我已经在其他一些项目中做到了这一点。
在这个项目中,它会出现本文标题中指出的错误。准确的写法是:
svndumpfilter:无效的复制源路径“/Personal/Richard/M1_Config”
该进程尝试写入不存在的管道。
错误引用的文件夹是我在我的个人文件夹下编写并提交的配置实用程序,它根本不在 root/m1... 文件夹下。我不想将其包含在过滤的文件中,但不知道如何向 svn 命令指示这一点。
- 如何正确过滤整个 M1 文件夹及其子文件夹,同时完全排除 Personal/Richard/M1_Config 文件夹?
- 如何确定导出的文件是否包含正确的信息以在远程 SVN 上正确重新创建 M1 文件夹?
I want to move part of my SVN repo offsite, onto an AWS instance & am following this page (Repository Maintenance)
I have taken a dump
of the whole repo (Windows commands):
svnadmin dump c:\repo > all_repo
Next is to filter it, to include only the project I am interested in (which is called "M1").
type all_repo | svndumpfilter include M1 --drop-empty-revs > m1
I know this is correct, as I have done it on some of the other projects already.
On this project, it breaks with the error indicated in the title of this post. The exact wording is:
svndumpfilter: Invalid copy source path '/Personal/Richard/M1_Config'
The process tried to write to a nonexistent pipe.
The folder that the error refers to is a configuration utility that I wrote and submitted under my personal folder, and it is not under the root/m1... folder at all. I do not want to include it in the filtered file, but do not know how to indicate this to the svn commands.
- How can I correctly filter for the whole M1 folder and its children, while excluding the Personal/Richard/M1_Config folder entirely?
- How can I be sure whether the exported file contains the correct information to correctly recreate the M1 folder on the remote SVN?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我已经尝试了至少 4 个不同的应用程序来做到这一点,唯一真正有效的是使用 svndumpfilterIN:
这是我的关于linux的完整答案。
这是我尝试过的方法,没有成功:
I've tried at least 4 different applications to do that, the only that really worked was using svndumpfilterIN :
Here is my full answer on linux.
Here is what I tried and didn't worked :
在某个时刻,
/Personal/Richard/M1_Config
已被复制到M1
路径。错误消息是说它无法执行复制,因为源已被过滤掉。检查 svndumpfilter 抱怨的修订。即使您不希望在最终导入中包含
/Personal/Richard/M1_Config
路径,也必须将其包含在内。您还需要包含/Personal/Richard
和/Personal
路径,因为每个路径都驻留在其父级中。您的命令需要是:如果您有其他路径,例如不需要的
/Personal/James
并且您希望排除它们,那么您可以运行第二个 svndumpfilter 来删除它们:At some point
/Personal/Richard/M1_Config
has been copied to theM1
path. The error message is say that it can't perform the copy since the source has been filtered out. Check the revision that svndumpfilter complained about.You must include the
/Personal/Richard/M1_Config
path even if you don't want it in the final import. You also need to include the/Personal/Richard
and/Personal
paths since each resides in it's parent. Your command needs to be:If you have other paths, say
/Personal/James
that aren't needed and you wish to exclude them then you can run a second svndumpfilter to strip them:我遇到了同样的问题。我们在存储库中有许多远程移动和复制的路径,唯一真正有帮助的工具是 svndumpsanitizer 单个文件可以在 cygwin 或 Linux 上轻松编译的 C 程序,并且它在大约 160,000 次提交的 170 GB 增量转储文件上运行得非常出色。
I run into the same problem. We have many remotely moved and copied paths in the repository and the only tool that really helped was svndumpsanitizer A single file C program that easily can be compiled on cygwin or Linux and it worked like a charm on a 170 GB incremental dump file with ~160,000 commits.