svn 转储文件似乎格式不正确或错误

svn 转储文件似乎格式不正确或错误

我正在尝试获取我的集合SVN 存储库。我已关注他们的指示,并下载导出生成的 tar.gz 文件。

我想在将转储导入到另一个 repo 之前对其进行 svndumpfilter 操作,但我所做的一切都会产生一些错误;

  • 如果我运行tar xzf该文件,我会得到所有内容(一个目录,而不是一个平面文件) - 如果我把这些内容放在一个目录中并运行 svndumpfilter 我会得到一个错误svndumpfilter: E000021: Can't read stream: Is a directory
  • 如果我只解压(而不是解压)gz 文件,然后尝试在 tar 文件上运行 svndumpfilter,我会得到svndumpfilter: E140001: Malformed dumpfile header 'breakout.ini'
  • 如果我尝试直接使用下载转储,svnrdump dump http://subversion.assembla.com/svn/<repo_name>/则会出现错误:

    * Dumped revision 6. svnrdump: E175002: REPORT of  
    'http://subversion.assembla.com/svn/<repo_name>': Could not read response body: Connection reset by peer (http://subversion.assembla.com)
    

    在转储修订版 6 之后,这种情况始终会发生。

  • 如果我尝试将未压缩的文件导入本地仓库,我会得到

    $ sudo svnadmin create my_repo
    $ sudo svnadmin load --force-uuid my_repo < repo_download.tar.gz
    svnadmin: E140001: Malformed dumpfile header '?\8'
    

在本地,我在 Ubuntu 上使用 svn 版本 1.7.4。我不知道 assembla 使用哪个版本。

我是否遗漏了某些明显的内容,或者他们是否通过对应该是平面转储文件的内容进行 tar 处理而造成了混淆?

在未压缩的下载上运行树得到:

tree -d
.
âââ tmp
    âââ db
    â   âââ node-origins
    â   âââ revprops
    â   â   âââ 0
    â   âââ revs
    â   â   âââ 0
    â   âââ transactions
    â   âââ txn-protorevs
    âââ hooks
    â   âââ post-commit.d
    â   âââ post-revprop-change.d
    â   âââ pre-commit.d
    âââ locks

14 directories

答案1

更新:

从您提供的额外信息来看,您已经下载了整个“后端“SVN 存储库。正如评论中所讨论的,请尝试使用以下命令检查它:

svn checkout file://$(pwd)/tmp ./checkout

从您提供的额外信息来看,您好像下载了错误的内容,或者他们的下载服务出现故障。

svnrdump应该可以工作,但可能值得尝试将远程存储库镜像到本地存储库:

svnadmin create mirror
echo '#!/bin/true' > mirror/hooks/pre-revprop-change
chmod +x mirror/hooks/pre-revprop-change
svnsync init file://$(pwd)/mirror http://subversion.assembla.com/svn/${repo_name}
svnsync sync file://$(pwd)/mirror

不幸的是,您可能会发现这在第 6 次修订版时或之后也会发生,但值得一试 - 也许问题修订特别大?

如果svnsync也行程,您是否可以正常檢查出有问题的修订版本?

svn checkout -r 6 http://subversion.assembla.com/svn/${repo_name} ./my_repo

笔记:可能 rev 6 没问题,但问题实际上出在 rev 7 上,所以也试一下。

相关内容