svndumpfilter 失败并显示“无效的复制源路径...”错误

发布于 2025-01-05 09:26:04 字数 785 浏览 3 评论 0原文

我想将我的 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 命令指示这一点。

  1. 如何正确过滤整个 M1 文件夹及其子文件夹,同时完全排除 Personal/Richard/M1_Config 文件夹?
  2. 如何确定导出的文件是否包含正确的信息以在远程 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.

  1. How can I correctly filter for the whole M1 folder and its children, while excluding the Personal/Richard/M1_Config folder entirely?
  2. How can I be sure whether the exported file contains the correct information to correctly recreate the M1 folder on the remote SVN?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怀念你的温柔 2025-01-12 09:26:04

我已经尝试了至少 4 个不同的应用程序来做到这一点,唯一真正有效的是使用 svndumpfilterIN

svnadmin dump c:\repo > all_repo
svndumpfilter.py all_repo --repo=c:\repo --output-dump=m1 include M1

这是我的关于linux的完整答案

这是我尝试过的方法,没有成功

I've tried at least 4 different applications to do that, the only that really worked was using svndumpfilterIN :

svnadmin dump c:\repo > all_repo
svndumpfilter.py all_repo --repo=c:\repo --output-dump=m1 include M1

Here is my full answer on linux.

Here is what I tried and didn't worked :

世界和平 2025-01-12 09:26:04

在某个时刻,/Personal/Richard/M1_Config 已被复制到 M1 路径。错误消息是说它无法执行复制,因为源已被过滤掉。检查 svndumpfilter 抱怨的修订。

即使您不希望在最终导入中包含 /Personal/Richard/M1_Config 路径,也必须将其包含在内。您还需要包含 /Personal/Richard/Personal 路径,因为每个路径都驻留在其父级中。您的命令需要是:

type all_repo | svndumpfilter include M1 "/Personal" --drop-empty-revs > m1 

如果您有其他路径,例如不需要的 /Personal/James 并且您希望排除它们,那么您可以运行第二个 svndumpfilter 来删除它们:

type m1 | svndumpfilter exclude "/Personal/James" --drop-empty-revs > m1_2

At some point /Personal/Richard/M1_Config has been copied to the M1 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:

type all_repo | svndumpfilter include M1 "/Personal" --drop-empty-revs > m1 

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:

type m1 | svndumpfilter exclude "/Personal/James" --drop-empty-revs > m1_2
俏︾媚 2025-01-12 09:26:04

我遇到了同样的问题。我们在存储库中有许多远程移动和复制的路径,唯一真正有帮助的工具是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文