git svn clone格式错误的索引信息错误

Ael*_*eis 38 svn git perl

当我运行git svn clone时,我收到以下错误:

  0 [main] perl 24432 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
  fatal: malformed index info 100644 362f1c18ceed5d593eb021432545685283a93 
Run Code Online (Sandbox Code Playgroud)

当我打开文件时,我看到以下内容:

例外:STATUS_ACCESS_VIOLATION在RIP = 0048360C537 RAX = 00000006039F81E0 RBX = 000000005219E248 RCX = 000000060003A3C0 RDX = 0000000000000000 RSI = 000000000000FDB4 RDI = 0000000000000004 R8 = 0000000000000000 R9 = 0000000000000000 R10 = 0000000000230000 R11 = 000000048D785FBA R12 = 0000000000000003 R13 = 000006FFFF7FEDB8 R14 = 00000006014D4030 R15 = 000006FFFF7FEDD0 RBP = 000000000007EDA8 rsp = 000000000022BE80 program = C:\ Program Files\Git\usr\bin\perl.exe,pid 24432,thread main cs = 0033 ds = 002B es = 002B fs = 0053 gs = 002B ss = 002B

我检查了以下链接:

Git SVN克隆出错

通过git svn克隆单个SVN分支的问题

适用于Windows的Python SVN绑定

subversion python绑定文档?

不幸的是,我对底层技术不够熟悉,无法弄清楚我应该做些什么.可能会导致这种情况,我怎么能够解决?

Raj*_*ava 19

我使用svn2git工具将巨大的svn存储库迁移到git时出现此错误.我在.git/config文件中添加了以下行,它开始工作:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
    packedGitLimit = 256m
    packedGitWindowSize = 256m
    longpaths = true
[http]
    postBuffer = 524288000
[pack]
  deltaCacheSize = 256m
  packSizeLimit = 256m
  windowMemory = 1024m
Run Code Online (Sandbox Code Playgroud)

这些设置在git-config手册页中进行了解释.


mat*_*zek 13

更新:使用2.11.0和git-svn 1:2.11.0-2ubuntu0.2更新到Ubuntu 17.04后,克隆工作完美无缺.

通过perl脚本调试时,我发现了一个有趣的解决方案:

  • 通过git svn在perl调试器中运行来减慢或以某种方式操纵执行.

git svn fetch以下命令开始(您可能必须更改路径.这也适用于克隆).确保在git repository /目录中运行命令:

perl -d /usr/lib/git-core/git-svn fetch
Run Code Online (Sandbox Code Playgroud)

在调试器中输入以下内容,然后按ENTER键:

b /usr/share/perl5/Git/SVN/Fetcher.pm:368 $base==undef or $dup==undef
Run Code Online (Sandbox Code Playgroud)

这基本上在我得到信号11的位置添加一个条件断点.这是代码行:

[ SVN::TxDelta::apply($base, $dup, undef, $fb->{path}, $fb->{pool}) ];
Run Code Online (Sandbox Code Playgroud)

然后输入c以继续执行并按ENTER.

有人可以解释为什么这有帮助?

编辑:它工作:213000修订和1780分支克隆到git!


cen*_*tic 6

我有类似的例外和错误消息,对我来说

git gc
Run Code Online (Sandbox Code Playgroud)

和/或a

git svn gc
Run Code Online (Sandbox Code Playgroud)

将存储库恢复到可用状态.另请参见/sf/answers/100547051/