最近我重新安装了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都是最新版本。
请帮帮我。
6条答案
按热度按时间lyr7nygr1#
我终于想通了!
打开
git-svn
文件(perl脚本,在我的例子中文件位置是/usr/local/opt/git/libexec/git-core/git-svn
),将第一行#!/usr/bin/perl
更改为#!/usr/local/bin/perl
而且很管用!
我猜system perl没有包含perl SVN/Core,但是brew perl有(brew svn的依赖项)。
xxls0lw82#
在与此错误斗争了几个小时后:
我终于找到了一个有效的解决办法。
如果运行:
它将打印如下消息:
然后,在使用
git svn
从正确的路径加载SVN模块之前,您只需要运行以下命令:puruo6ea3#
解决方案对于那些,像我一样-想要使用macOS Catalina上的sourcetree客户端与git-svn:
第一步:
第二步,安装缺少的Perl模块:
第三步,配置源树:
在资源树-〉首选项-设置选项"使用系统git",从:
hgc7kmma4#
虽然不是永久性修复,但解决方法是设置
${GITPERLLIB}
:为我工作,没有编辑任何脚本安装的brew。
zpjtge225#
确保您已通过Homebrew安装Perl、Subversion和依赖项:
将所需的Perl模块安装到
~/perl5
中:通过以下方式验证安装的模块:
然后按如下所示配置Perl(基于
brew info perl
步骤):最后运行Git的SVN:
如果你仍然卡住,尝试GitHub和GitLab网站,他们提供了Git/SVN迁移。
例如,在GitHub中,创建一个新的仓库,然后通过粘贴旧仓库的克隆URL导入项目。
c2e8gylq6#
错误消息显示:
这是因为git-svn是由Perl实现的,它需要一个名为
SVN::Core
的Perl库来运行.将git-svn
脚本的第一行从#!/usr/bin/perl
修改为#!/usr/local/bin/perl
**不会修复这个错误!!! * 因为这只是将Perl库从system default version
修改为brew installed version
.如果brew installed version
不包含SVN::Core
,它仍然会失败:注意,Perl版本已经更改,但是错误仍然存在,因为
@INC
指示的目录中没有SVN:Core
。现在一些答案可能会告诉您按
cpan SVN::Core
安装SVN::Core
,**不要这样做!!!**这不会解决问题!因为它安装的SVN::Core
版本可能与您的SVN版本不匹配:顺便说一下,cpan是垃圾,不要用它来安装任何东西。它在安装前编译源代码,但不能控制编译标志/选项,而且它不能卸载自己安装的东西。
在安装
svn
时已经安装了相应的Perl库,并且brew
已经告诉您:我们可以看到Perl绑定位于
/usr/local/opt/subversion/lib/perl5
中,我们只需要让git-svn
使用这个路径。稍微研究一下git-svn
脚本,我们可以看到这个行为是由一个名为GITPERLLIB
的环境变量控制的:因此,解决此问题的正确方法是将以下代码添加到
bashrc
或zshrc
:问题解决了!