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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]