threads / discuss / 41569

git svn clones flawlessly on Windows, crashes silently on OS X - status of externals support?

Subject: git svn clones flawlessly on Windows, crashes silently on OS X - status of externals support?

## tl;dr

One message between Feb 29, 2016 and Feb 29, 2016.

replies: 0people: 1as markdown or json

Jon Blackburn· Feb 29, 2016, 16:54 UTC · lore
Hello,

tl;dr: Can I get Git/SVN working on my MacBook if there are external references in the repository? If not, are there alternatives that I can leverage?

I'm trying to use git svn to clone a repository that contains externals. On my Windows7 machine it works perfectly. On my Mac (running OSX 10.11.3) it fails silently after creating the empty local repository.

The posts that speak to some of the issues surrounding this are over two years old, so I'm hoping things have changed.

I've tried with the versions of Git and SVN installed with XCode, and with newer versions installed with HomeBrew and MacPorts. The latest version of Git (2.7.2) is the one I've done my troubleshooting with.

I found the threads that speak of needing to link the SVN Perl modules into directories being searched by the Perl runtime, and have done something comparable with these:

sudo ln -s /opt/local/lib/perl5/vendor_perl/5.22/darwin-thread-multi- 2level/SVN /opt/local/lib/perl5/site_perl/5.22/darwin-thread-multi-2level/SVN

sudo ln -s /opt/local/lib/perl5/vendor_perl/5.22/darwin-thread-multi- 2level/auto /opt/local/lib/perl5/site_perl/5.22/auto

If I try with Git's debugger turned on, like so:
GIT_TRACE=1 git svn clone -s https://my-remote-repo

I get a bunch of redundant messages that look similar to the below, with something suspicious happening right at the time Git encounters its first external reference:

... many, many of these Checked through r45000 16:49:19.677091 git.c:348 trace: built-in: git 'config' 'svn-remote.svn. branches-maxRev' '45000' 16:49:19.684111 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.tags- maxRev' '45000' Checked through r45100 16:49:19.721522 git.c:348 trace: built-in: git 'config' 'svn-remote.svn. branches-maxRev' '45100' 16:49:19.728460 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.tags- maxRev' '45100' 16:49:19.784923 git.c:348 trace: built-in: git 'config' 'svn-remote.svn. reposRoot' 'https://a-remote-external' ... once this line appears, the "Checked through r*" messages disappear. ... The rest of the output looks like these. Then the process dies. 16:49:19.807647 git.c:348 trace: built-in: git 'config' 'svn-remote.svn. branches-maxRev' '45172' 16:49:19.814647 git.c:348 trace: built-in: git 'config' 'svn-remote.svn. tags-maxRev' '45172'

If I run with the Perl debugger like so:

PERLDB_OPTS="NonStop frame=5" /opt/local/bin/perl5.22 -d $(git --exec-path)/git-svn clone -s https://my-remote-repository

I get the following stacktrace mush right before it crashes. It looks like multiple processes are sending output to TTY so the stacktraces are interleaved. There is a reference to Error::throw() down at the bottom that I hope will be helpful.

  in  .=main::post_fetch_checkout() from /opt/local/libexec/git-core/
            git-svn:387
   in  $=main::verify_ref('HEAD^0') from /opt/local/libexec/git-core/
           git-svn:1716
    in  $=Git::command_oneline(ref(ARRAY), ref(HASH)) from /opt/
           local/libexec/git-core/git-svn:1806
     in  @=Git::command_output_pipe(ref(ARRAY), ref(HASH)) from  
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:314
      in  @=Git::_command_common_pipe('-|', ref(ARRAY), ref(HASH)) from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:344
       in  @=Git::_maybe_self(ref(ARRAY), ref(HASH)) from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1561
        in  $=UNIVERSAL::isa(ref(ARRAY), 'Git') from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1549
       in  .=Git::_check_valid_cmd('rev-parse') from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1569 from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1598 
        in  .=Git::_setup_git_cmd_env(undef) from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1608
        in  .=Git::_execv_git_cmd('rev-parse', '--verify', 'HEAD^0') from 
          /opt/local/lib/perl5/site_perl/5.22/Git.pm:1609
     in  @=Error::subs::with(ref(CODE)) from 
          /opt/local/lib/perl5/site_perl/5.22/Git.pm:325
     in  $=Error::catch('Git::Error::Command', ref(CODE)) from 
          /opt/local/lib/perl5/site_perl/5.22/Git.pm:325
     in  .=Error::subs::try(ref(CODE), ref(HASH)) from 
         /opt/local/lib/perl5/site_perl/5.22/Git.pm:325
      in  .=CODE(0x7fa8a367bd40)() from 
         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:421
       in  .=Git::_cmd_close('rev-parse --verify HEAD^0', ref(GLOB)) from 
          /opt/local/lib/perl5/site_perl/5.22/Git.pm:319
        in  .=Error::throw('Git::Error::Command', 'rev-parse --verify HEAD^0'
          , 128) from /opt/local/lib/perl5/site_perl/5.22/Git.pm:1640
         in  $=Git::Error::Command::new('Git::Error::Command', 'rev-parse 
           --verify HEAD^0', 128) from /opt/local/lib/perl5/vendor_perl/5.22/
                Error.pm:184
          in  $=Error::new('Git::Error::Command', '-text', 'command returned 
            error', '-cmdline', 'rev-parse --verify HEAD^0', '-value', 128, 
            '-outputref', undef) from 
             /opt/local/lib/perl5/site_perl/5.22/Git.pm:1466
      in  $ CODE(0x7fa8a31d3db8)(ref(Git::Error::Command), undef, '') from 
            /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:426
      in  $=Error::subs::run_clauses(ref(HASH), ref(Git::Error::Command), undef, 
            ref(ARRAY)) from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:432
       in  $=Scalar::Util::blessed(ref(Git::Error::Command)) from 
          /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:324
       in  $=UNIVERSAL::isa(ref(Git::Error::Command), 'Git::Error::Command') 
          from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:324
       in  .=CODE(0x7fa8a23a74b8)(ref(Git::Error::Command), ref(SCALAR)) 
          from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:345
        in  .=Error::throw(ref(Git::Error::Command)) from 
           /opt/local/lib/perl5/site_perl/5.22/Git.pm:324
       in  $=CODE(0x7fa8a31d3db8)(ref(Git::Error::Command), undef, '') from 
          /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:354
      in  $=Scalar::Util::blessed(ref(Git::Error::Command)) from 
         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:440
      in  $=UNIVERSAL::can(ref(Git::Error::Command), 'throw') from 
         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:440
      in  .=Error::throw(ref(Git::Error::Command)) from 
         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:442

← back to recent threads