{"thread":{"id":"41569","subject":"git svn clones flawlessly on Windows, crashes silently on OS X - status of externals support?","startedAt":"2016-02-29T16:54:02Z","lastAt":"2016-02-29T16:54:02Z","messageCount":1,"participants":["Jon Blackburn"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"279790","messageId":"loom.20160229T173718-868@post.gmane.org","threadId":"41569","inReplyTo":null,"subject":"git svn clones flawlessly on Windows, crashes silently on OS X - status of externals support?","fromName":"Jon Blackburn","fromEmail":"gitcommunitysupport@jonathanblackburn.net","sentAt":"2016-02-29T16:54:02Z","receivedAt":"2016-02-29T16:54:02Z","isPatch":false,"sender":{"key":"gitcommunitysupport@jonathanblackburn.net","avatar":null},"body":"Hello,\n\ntl;dr: Can I get Git/SVN working on my MacBook if there are external references\nin the repository? If not, are there alternatives that I can leverage?\n\nI'm trying to use git svn to clone a repository that contains externals. On my \nWindows7 machine it works perfectly. On my Mac (running OSX 10.11.3) \nit fails silently after creating the empty local repository.\n\nThe posts that speak to some of the issues surrounding this are over two \nyears old, so I'm hoping things have changed.\n\nI've tried with the versions of Git and SVN installed with XCode, and with \nnewer versions installed with HomeBrew and MacPorts. The latest version of \nGit (2.7.2) is the one I've done my troubleshooting with.\n\nI found the threads that speak of needing to link the SVN Perl modules into\ndirectories being searched by the Perl runtime, and have done something \ncomparable with these:\n\nsudo ln -s /opt/local/lib/perl5/vendor_perl/5.22/darwin-thread-multi-\n2level/SVN /opt/local/lib/perl5/site_perl/5.22/darwin-thread-multi-2level/SVN\n\nsudo ln -s /opt/local/lib/perl5/vendor_perl/5.22/darwin-thread-multi-\n2level/auto /opt/local/lib/perl5/site_perl/5.22/auto\n\nIf I try with Git's debugger turned on, like so:\n\nGIT_TRACE=1 git svn clone -s https://my-remote-repo\n\nI get a bunch of redundant messages that look similar to the below, with \nsomething suspicious happening right at the time Git encounters its first \nexternal reference:\n\n... many, many of these\nChecked through r45000\n16:49:19.677091 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.\nbranches-maxRev' '45000'\n16:49:19.684111 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.tags-\nmaxRev' '45000'\nChecked through r45100\n16:49:19.721522 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.\nbranches-maxRev' '45100'\n16:49:19.728460 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.tags-\nmaxRev' '45100'\n16:49:19.784923 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.\nreposRoot' 'https://a-remote-external'\n... once this line appears, the \"Checked through r*\" messages disappear.\n... The rest of the output looks like these. Then the process dies.\n16:49:19.807647 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.\nbranches-maxRev' '45172'\n16:49:19.814647 git.c:348 trace: built-in: git 'config' 'svn-remote.svn.\ntags-maxRev' '45172'\n\n\nIf I run with the Perl debugger like so:\n\nPERLDB_OPTS=\"NonStop frame=5\" /opt/local/bin/perl5.22 -d \n$(git --exec-path)/git-svn clone -s https://my-remote-repository\n\nI get the following stacktrace mush right before it crashes. It looks like \nmultiple processes are sending output to TTY so the stacktraces are \ninterleaved. There is a reference to Error::throw() down at the bottom that \nI hope will be helpful.\n\n  in  .=main::post_fetch_checkout() from /opt/local/libexec/git-core/\n            git-svn:387\n   in  $=main::verify_ref('HEAD^0') from /opt/local/libexec/git-core/\n           git-svn:1716\n    in  $=Git::command_oneline(ref(ARRAY), ref(HASH)) from /opt/\n           local/libexec/git-core/git-svn:1806\n     in  @=Git::command_output_pipe(ref(ARRAY), ref(HASH)) from  \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:314\n      in  @=Git::_command_common_pipe('-|', ref(ARRAY), ref(HASH)) from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:344\n       in  @=Git::_maybe_self(ref(ARRAY), ref(HASH)) from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1561\n        in  $=UNIVERSAL::isa(ref(ARRAY), 'Git') from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1549\n       in  .=Git::_check_valid_cmd('rev-parse') from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1569 from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1598 \n        in  .=Git::_setup_git_cmd_env(undef) from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:1608\n        in  .=Git::_execv_git_cmd('rev-parse', '--verify', 'HEAD^0') from \n          /opt/local/lib/perl5/site_perl/5.22/Git.pm:1609\n     in  @=Error::subs::with(ref(CODE)) from \n          /opt/local/lib/perl5/site_perl/5.22/Git.pm:325\n     in  $=Error::catch('Git::Error::Command', ref(CODE)) from \n          /opt/local/lib/perl5/site_perl/5.22/Git.pm:325\n     in  .=Error::subs::try(ref(CODE), ref(HASH)) from \n         /opt/local/lib/perl5/site_perl/5.22/Git.pm:325\n      in  .=CODE(0x7fa8a367bd40)() from \n         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:421\n       in  .=Git::_cmd_close('rev-parse --verify HEAD^0', ref(GLOB)) from \n          /opt/local/lib/perl5/site_perl/5.22/Git.pm:319\n        in  .=Error::throw('Git::Error::Command', 'rev-parse --verify HEAD^0'\n          , 128) from /opt/local/lib/perl5/site_perl/5.22/Git.pm:1640\n         in  $=Git::Error::Command::new('Git::Error::Command', 'rev-parse \n           --verify HEAD^0', 128) from /opt/local/lib/perl5/vendor_perl/5.22/\n                Error.pm:184\n          in  $=Error::new('Git::Error::Command', '-text', 'command returned \n            error', '-cmdline', 'rev-parse --verify HEAD^0', '-value', 128, \n            '-outputref', undef) from \n             /opt/local/lib/perl5/site_perl/5.22/Git.pm:1466\n      in  $ CODE(0x7fa8a31d3db8)(ref(Git::Error::Command), undef, '') from \n            /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:426\n      in  $=Error::subs::run_clauses(ref(HASH), ref(Git::Error::Command), undef, \n            ref(ARRAY)) from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:432\n       in  $=Scalar::Util::blessed(ref(Git::Error::Command)) from \n          /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:324\n       in  $=UNIVERSAL::isa(ref(Git::Error::Command), 'Git::Error::Command') \n          from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:324\n       in  .=CODE(0x7fa8a23a74b8)(ref(Git::Error::Command), ref(SCALAR)) \n          from /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:345\n        in  .=Error::throw(ref(Git::Error::Command)) from \n           /opt/local/lib/perl5/site_perl/5.22/Git.pm:324\n       in  $=CODE(0x7fa8a31d3db8)(ref(Git::Error::Command), undef, '') from \n          /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:354\n      in  $=Scalar::Util::blessed(ref(Git::Error::Command)) from \n         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:440\n      in  $=UNIVERSAL::can(ref(Git::Error::Command), 'throw') from \n         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:440\n      in  .=Error::throw(ref(Git::Error::Command)) from \n         /opt/local/lib/perl5/vendor_perl/5.22/Error.pm:442\n"}]}