On OSX using sourcetree / git-svn getting “Can't locate SVN/Core.pm in @INC ”

前端 未结 10 2121
离开以前
离开以前 2021-02-07 06:14

I\'m using OSX and want get a svn repo into a local git repo using sourcetree.

When I add a bookmark using sourcetree using SVN URL, thus sourcetree<

相关标签:
10条回答
  • 2021-02-07 06:50

    Thanks Marko, I did find that on ElCapitan 10.11.3 I had to symlink to a different area. Not sure why, but it works.

    sudo ln -s /Library/Developer/CommandLineTools/Library/Perl/5.18/darwin‌​-thread-multi-2level‌​/SVN /Applications/SourceTree.app/Contents/Resources/git_local/li‌​b/perl5/site_perl/5.‌​18.2/darwin-thread-m‌​ulti-2level/SVN
    sudo ln -s /Library/Developer/CommandLineTools/Library/Perl/5.18/darwin‌​-thread-multi-2level‌​/auto/SVN /Applications/SourceTree.app/Contents/Resources/git_local/li‌​b/perl5/site_perl/5.‌​18.2/darwin-thread-m‌​ulti-2level/auto/SVN
    
    0 讨论(0)
  • 2021-02-07 06:52

    I got the same issue on Macos Mojave 10.14.1. Because I used the built-in version of git, and it's too lower(2.19.0). I fixed it by upgrade git to the latest version(2.21.0), and I found 2.19.1 also has no this issue.

    0 讨论(0)
  • 2021-02-07 06:55

    I hit this missing SVN/Core.pm issue recently with el capitain.

    Fix I used was from Paul Schreiber's blog :

    sudo mkdir /Library/Perl/5.18/auto
    sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi‌-2level/SVN /Library/Perl/5.18/darwin-thread-multi-2level
    sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi‌-2level/auto/SVN /Library/Perl/5.18/auto/
    


    Commenters below, say this worked on sierra and high sierra too.

    0 讨论(0)
  • 2021-02-07 06:59

    Manage to fix the same issue by changing the first line in /usr/local/Cellar/git/2.29.2/libexec/git-core/git-svn to #!/usr/local/bin/perl

    0 讨论(0)
  • 2021-02-07 07:01

    Xcode 11.4 no longer includes SVN/Core.pm in its Perl bindings!

    If you've never installed the commandline tools and Xcode 11.4 is the first version you've run you will see this issue. Running xcode-select --install returns error: command line tools are already installed, use "Software Update" to install updates, which is accurate but non-obvious that your installed commandline tools differ from what you would get if installed outside of Xcode 11.4. The solution is to first remove these, then install the commandline tools using xcode-select.

    sudo rm -rf /Library/Developer/CommandLineTools
    xcode-select --install
    
    0 讨论(0)
  • 2021-02-07 07:03

    In my case, it is because different versioned perl was installed by brew as dependency of some formula, and override the system's default version.

    So the resolution for me is to relieve the overridden as described following.


    when type which perl and perl -v, I find it not the system default version:

    # locate programs
    faner@MBP-FAN:~|⇒  whereis perl
    /usr/bin/perl
    
    # locate a program file in the user's path
    faner@MBP-FAN:~|⇒  which perl
    /usr/local/bin/perl
    
    faner@MBP-FAN:~|⇒  perl -v
    
    This is perl 5, version 26, subversion 1 (v5.26.1) built for darwin-thread-multi-2level
    

    which should be v5.18.2 according to the git svn error messages.

    I guess it is because the different versioned perl was installed by brew as dependency of some formula, and override the system default version.

    faner@MBP-FAN:~|⇒  brew uses perl --installed
    subversion
    

    To prove it, try to move /usr/bin before /usr/local/bin in $PATH, then perl was fallback to the system's default version:

    faner@MBP-FAN:~|⇒  echo $PATH
    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
    
    faner@MBP-FAN:~|⇒  PATH=/usr/bin:$PATH
    faner@MBP-FAN:~|⇒  echo $PATH
    /usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
    
    faner@MBP-FAN:~|⇒  whereis perl
    /usr/bin/perl
    
    faner@MBP-FAN:~|⇒  which perl
    /usr/bin/perl
    
    faner@MBP-FAN:~|⇒  perl -v
    
    This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
    (with 2 registered patches, see perl -V for more detail)
    

    and perl -V list the @INC just satisfy the Can't locate SVN/Core.pm in @INC requirements:

    faner@MBP-FAN:~|⇒  perl -V
    Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
    
      @INC:
        /Library/Perl/5.18/darwin-thread-multi-2level
        /Library/Perl/5.18
        /Network/Library/Perl/5.18/darwin-thread-multi-2level
        /Network/Library/Perl/5.18
        /Library/Perl/Updates/5.18.2
        /System/Library/Perl/5.18/darwin-thread-multi-2level
        /System/Library/Perl/5.18
        /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
        /System/Library/Perl/Extras/5.18
    

    type git svn and everything works well!

    faner@MBP-FAN:~|⇒  git svn --version
    git-svn version 2.15.1 (Apple Git-101) (svn 1.9.7)
    
    0 讨论(0)
提交回复
热议问题