Try convert your directory using the line below and send for us the result.

cd /home/aleksey/scratch/

git svn clone -r 18663:18664  svn://myrepo.example.com/myproject 
--authors-file=authors.txt 
--no-metadata -s myproject

I really recommend you do not define a revision when cloning repositories 
because it can cause problems with these indexes. Thus, I always prefer 
converting all repository and its revisions like:

git svn clone svn://myrepo.example.com/myproject --authors-file=authors.txt 
-s myproject

This process will take a lot of minutes to finish but it is safer.


On Saturday, October 15, 2016 at 8:11:44 PM UTC-3, Aleksey Tsalolikhin 
wrote:
>
> Hello,
>
> I'm trying to convert an SVN repository to Git with "git-svn" and it dies 
> with a seg fault.
>
> # git svn --version
> git-svn version 2.10.1 (svn 1.9.3)
> #
>
> I've narrowed the problem down to commit 18663 (and we have 22K revisions 
> in the SVN repo).
>
> # git svn clone -r 18663:18664  svn://myrepo.example.com/ 
> --authors-file=authors.txt --no-metadata --trunk=myproject/trunk 
> --tags=myproject/tags --branches=myproject/branches 
> file:///home/aleksey/scratch/myproject/
>
> The error is:
>
> Index mismatch: 314e2ca82dcac3fc7a31668974ec1bbfe2ba0904 != 
> 60995aa26b6d5fd5056d7c1c278ab9fac4f0fa72
> rereading 6edf00155e99771d6f8af9aeae5b2578a7f1db76
>         A       file1
>         A       file2
>         A       file3
> ... [add a bunch more files]
> Ignoring path
> error: git-svn died of signal 11
> #
>
>
> Turn on GIT_TRACE:
>
> 22:37:17.322731 git.c:350               trace: built-in: git 'rev-list' 
> '--pretty=raw' '--reverse' 
> '6edf00155e99771d6f8af9aeae5b2578a7f1db76..refs/remotes/origin/JohnDeveloper' 
> '--'
> 22:37:17.323466 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.rewriteRoot'
> 22:37:17.325970 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.rewriteUUID'
> 22:37:17.331451 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.usesvmprops'
> 22:37:17.334047 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.nometadata'
> 22:37:17.336422 git.c:350               trace: built-in: git 'config' 
> '--bool' 'svn-remote.svn.nometadata'
> 22:37:17.339054 git.c:350               trace: built-in: git 'write-tree'
> 22:37:17.370642 git.c:350               trace: built-in: git 'cat-file' 
> 'commit' '6edf00155e99771d6f8af9aeae5b2578a7f1db76'
> Index mismatch: 314e2ca82dcac3fc7a31668974ec1bbfe2ba0904 != 
> 60995aa26b6d5fd5056d7c1c278ab9fac4f0fa72
> rereading 6edf00155e99771d6f8af9aeae5b2578a7f1db76
> 22:37:17.374140 git.c:350               trace: built-in: git 'read-tree' 
> '6edf00155e99771d6f8af9aeae5b2578a7f1db76'
> 22:37:17.448099 git.c:350               trace: built-in: git 'write-tree'
> 22:37:17.460106 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.followparent'
> 22:37:17.462909 git.c:350               trace: built-in: git 'config' 
> '--bool' '--get' 'svn.brokenSymlinkWorkaround'
> 22:37:17.465511 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.ignore-paths'
> 22:37:17.467963 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn-remote.svn.include-paths'
> 22:37:17.470431 git.c:350               trace: built-in: git 'config' 
> '--get' '--bool' 'svn-remote.svn.preserve-empty-dirs'
> 22:37:17.472916 git.c:350               trace: built-in: git 'config' 
> '--get-all' 'svn-remote.svn.added-placeholder'
> 22:37:17.475974 git.c:350               trace: built-in: git 
> 'update-index' '-z' '--index-info'
> 22:37:17.476806 git.c:350               trace: built-in: git 'config' 
> '--get' 'svn.pathnameencoding'
> 22:37:17.479570 git.c:350               trace: built-in: git 'config' 
> 'svn-remote.svn.reposRoot' 'svn://myrepo.example.com'
> 22:37:17.506685 git.c:350               trace: built-in: git 'hash-object' 
> '-w' '--stdin-paths' '--no-filters'
>         A       file1
>         A       file2
>         A       file3
>
>
> Again, the error was:
>
> Index mismatch: 314e2ca82dcac3fc7a31668974ec1bbfe2ba0904 != 
> 60995aa26b6d5fd5056d7c1c278ab9fac4f0fa72
> rereading 6edf00155e99771d6f8af9aeae5b2578a7f1db76
>
> 6edf is a commit object:
>
> # git cat-file -t 6edf00155e99771d6f8af9aeae5b2578a7f1db76
> commit
> #
>
> Its contents:
>
> # git cat-file -p 6edf00155e99771d6f8af9aeae5b2578a7f1db76
> tree 314e2ca82dcac3fc7a31668974ec1bbfe2ba0904
> parent ba36a400db2acdc441b3665428870a2d0ef48da6
> author [redacted]
> committer [redacted]
>
> [redacted]
> #
>
> Finally, the second object mentioned in the error does not exist:
>
> # git cat-file -t 60995aa26b6d5fd5056d7c1c278ab9fac4f0fa72
> fatal: git cat-file: could not get object info
> #
>
> Where did git get 6099?
>
> It wasn't from 6edf or 314e...
>
> # git cat-file -p 314e2ca82dcac3fc7a31668974ec1bbfe2ba0904
> 040000 tree de2e3c37d310176d37316e29fafcc524f432a61b    [redacted]
> 040000 tree c87e8141209f655a9b21b251bdc52b7a17ace55d    [redacted]
> 040000 tree bb9b918e1f91adcfc04512b7ff2d5647104f654b    [redacted]
> 040000 tree ad127b602af7ff6de4e10fa391305966f72e53a7    [redacted]
> 040000 tree 458c21da5d8900f06df895c8ae8218693729cf07    [redacted]
> 040000 tree 0343c9b99e9e5266c53704fc8a53ae645945896c    [redacted]
> #
>
> I tried adding -d switch to git-svn, and now it dies with SIGABRT rather 
> than SIGSEGV:
>
> Signal SEGV at /opt/git-2.10.1/share/perl/5.22.1/Git/SVN/Fetcher.pm line 
> 368.
>         
> Git::SVN::Fetcher::apply_textdelta(Git::SVN::Fetcher=HASH(0x38cfeb8), 
> HASH(0x3d4bbb0), undef, _p_apr_pool_t=SCALAR(0x3d42bd8)) called at 
> /usr/lib/x86_64-linux-gnu/perl5/5.22/SVN/Ra.pm line 623
>         SVN::Ra::Reporter::AUTOLOAD(SVN::Ra::Reporter=ARRAY(0x3902200), 
> SVN::Pool=REF(0x39021d0)) called at 
> /opt/git-2.10.1/share/perl/5.22.1/Git/SVN/Ra.pm line 312
>         Git::SVN::Ra::gs_do_update(Git::SVN::Ra=HASH(0x383f428), 7979, 
> 18664, Git::SVN=HASH(0x3884148), Git::SVN::Fetcher=HASH(0x38cfeb8)) called 
> at /opt/git-2.10.1/share/perl/5.22.1/Git/SVN.pm line 1210
>         Git::SVN::do_fetch(Git::SVN=HASH(0x3884148), HASH(0x38c91c0), 
> 18664) called at /opt/git-2.10.1/share/perl/5.22.1/Git/SVN/Ra.pm line 475
>         Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x383f428), 
> 18663, 18664, ARRAY(0x2d78830), ARRAY(0x2d78848)) called at 
> /opt/git-2.10.1/share/perl/5.22.1/Git/SVN.pm line 184
>         Git::SVN::fetch_all("svn") called at 
> /opt/git-2.10.1/libexec/git-core/git-svn line 525
>         main::cmd_clone("svn://myrepo.example.com/", 
> "file:///home/aleksey/scratch/myproject/") called at 
> /opt/git-2.10.1/libexec/git-core/git-svn line 386
>         eval {...} called at /opt/git-2.10.1/libexec/git-core/git-svn line 
> 384
> Ignoring path
> error: git-svn died of signal 6
>
> Line 368 of "/opt/git-2.10.1/share/perl/5.22.1/Git/SVN/Fetcher.pm" is:
>         [ SVN::TxDelta::apply($base, $dup, undef, $fb->{path}, 
> $fb->{pool}) ];
>
> I tried running "git gc" and "git svn gc" as one of the answers in 
> http://stackoverflow.com/questions/32465621/git-svn-clone-malformed-index-info-error
>  
> suggested.  (I was getting "malformed index error" with git-2.9.2 before I 
> updated to latest stable version of git.)
>
> I also tried adding the conditional break point using the perl debugger, 
> as suggested on the the same stackoverflow page.
>
> I'm out of my depth and out of ideas...  any suggestions, please?
>
> I should mention this SVN repository contains multiple project, and I'm 
> just trying to convert one... (the main one).
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to