git-svn 在全新安装 macOS Catalina 10.15.4 后找不到 SVN/Core.pm

git-svn Can't locate SVN/Core.pm after fresh installation of macOS Catalina 10.15.4

最近我重新安装了 macOS Catalina 10.15.4。在我安装 Command_Line_Tools_11.4.1 之后,它告诉我 svn 不再与 Xcode 一起工作。然后我通过 brew 安装了 git 和 svn,希望 git-svn 可以工作。很遗憾收到此错误消息:

Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/Cellar/git/2.26.2/share/perl5 /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level /Library/Developer/CommandLineTools/Library/Perl/5.18/darwin-thread-multi-2level /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.4 /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 .) at /usr/local/Cellar/git/2.26.2/share/perl5/Git/SVN/Utils.pm line 6.

git&svn都是最新版本

请帮帮我。

终于明白了!!!

打开 git-svn 文件(perl 脚本,在我的例子中文件位置是 /usr/local/opt/git/libexec/git-core/git-svn),将第一行 #!/usr/bin/perl 更改为 #!/usr/local/bin/perl

而且有效!

我想系统 perl 不包含 perl SVN/Core,但是 brew perl 有它(依赖于 brew svn)。

针对像我这样的人的解决方案-想在 macOS Catalina 上使用 git-svn 的 Sourcetree 客户端:

第一步:

brew install git
brew install perl
brew install subversion

edit
/usr/local/Cellar/git/git_version/libexec/git-core/git-svn
replace
#!/usr/bin/perl
with
#!/usr/local/bin/perl

第二步,安装缺少的 perl 模块:

cpan SVN::Core
cpan Term::ReadKey

第三步,配置SourceTree:

在 Sourcetree->Preferences - 设置选项“使用系统 git”,来自:

/usr/local/Cellar/git/git_version/git

虽然不是永久修复,但解决方法是设置 ${GITPERLLIB}:

$ export GITPERLLIB=/usr/local/Cellar/git/2.31.1/share/perl5:/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
$ git svn clone svn+ssh://...

无需编辑 brew 安装的任何脚本即可为我工作。

确保您已经通过 Homebrew 安装了 Perl、Subversion 和依赖项:

brew install perl subversion apr apr-util

将所需的 Perl 模块安装到 ~/perl5:

export PATH="/usr/local/opt/apr/bin:/usr/local/opt/apr-util/bin:$PATH"
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib Git::SVN SVN::Core

通过以下方式验证安装的模块:

PERL5LIB="$HOME/perl5" cpan -l | grep SVN

然后如下配置 Perl(基于 brew info perl 步骤):

eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"

最后 运行 Git 的 SVN:

PERLLIB="$HOME/perl5" git svn clone https://svn.somecode.example.com/svn/trunk

如果您仍然遇到困难,请尝试 GitHub 和 GitLab 网站,它们提供 Git/SVN 迁移服务。

例如在 GitHub 中,创建一个新的存储库,然后通过粘贴旧存储库的克隆 URL.

来导入项目

MacOS Big Sur 11.5 的解决方案

在为这个错误苦苦挣扎了几个小时之后:

Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module)

我终于找到了一个切实可行的解决方案。

如果你运行:

brew reinstall subversion

它将打印如下消息:

The perl bindings are located in various subdirectories of:
  /usr/local/opt/subversion/lib/perl5

那么你只需要在使用git svn之前运行这个命令从正确的路径加载SVN模块:

export PERL5LIB=/usr/local/opt/subversion/lib/perl5/site_perl/5.30.2/darwin-thread-multi-2level