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

Ric*_*ier 13 svn svndumpfilter svnadmin

我想将我的部分SVN repo移到异地,转到AWS实例并关注此页面(存储库维护)

我已经使用dump了整个仓库(Windows命令):

  • svnadmin dump c:\repo > all_repo

接下来是过滤它,只包括我感兴趣的项目(称为"M1").

  • type all_repo | svndumpfilter include M1 --drop-empty-revs > m1

我知道这是正确的,因为我已经在其他一些项目上做过了.


在这个项目中,它打破了这篇文章标题中指出的错误.确切的措辞是:

svndumpfilter:无效的复制源路径'/ Personal/Richard/M1_Config'

该过程试图写入不存在的管道.

错误引用的文件夹是我在个人文件夹下编写和提交的配置实用程序,它根本不在root/m1 ...文件夹下.我不想将它包含在过滤文件中,但不知道如何向svn命令指明这一点.

  1. 如何正确筛选整个M1文件夹及其子文件,同时完全排除Personal/Richard/M1_Config文件夹?
  2. 如何确定导出的文件是否包含正确重新创建远程SVN上的M1文件夹的正确信息?

Ant*_* O. 18

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

svnadmin dump c:\repo > all_repo
svndumpfilter.py all_repo --repo=c:\repo --output-dump=m1 include M1
Run Code Online (Sandbox Code Playgroud)

这是我对linux的完整答案.

这是我尝试过但没有奏效的内容:


Cra*_*aig 16

在某些时候/Personal/Richard/M1_Config已被复制到M1路径.错误消息表明它已无法执行复制,因为源已被过滤掉.检查svndumpfilter抱怨的修订版.

/Personal/Richard/M1_Config即使您不希望在最终导入中使用该路径,也必须包含该路径.您还需要包含/Personal/Richard/Personal路径,因为每个路径都位于其父级中.你的命令需要是:

type all_repo | svndumpfilter include M1 "/Personal" --drop-empty-revs > m1 
Run Code Online (Sandbox Code Playgroud)

如果你有其他路径,说/Personal/James不需要你想要排除它们,那么你可以运行第二个svndumpfilter来剥离它们:

type m1 | svndumpfilter exclude "/Personal/James" --drop-empty-revs > m1_2
Run Code Online (Sandbox Code Playgroud)