昨天我没有遇到任何问题,但今天无法再运行git svn
。它显示以下消息:
git: 'svn' is not a git command. See 'git --help'.
The most similar commands are
fsck
mv
show
我不知道它是否相关,但自从昨天我更新了npm
(6.14.4)和node
(v12.6.0)。
我使用的是macOS Catalina操作系统。
感谢BitByteDog提供答案。
我在macOS Ventura v13.1下再次遇到了这个问题,并通过安装git-svn解决了这个问题。
brew install git-svn
我在GitHub上找到了一个适用于macOS Big Sur v11.1 (20C69)
的简单固定解决方案。
make sure install git, svn, perl with brew.
brew install git
brew install perl
brew install subversion
edit /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn
.
replace #!/usr/bin/perl
with #!/usr/local/bin/perl
git svn
works.
上述解决方案仅适用于perl 5.32.0。
当我将perl更新到5.32.1后,git svn
无法正常工作。
在@INC中找不到SVN/Core.pm(您可能需要安装SVN::Core模块)...
我在GitHub上找到了一个解决方案。
Now subversion built with system perl, so we can add an environment variable to solve this problem:
export PERL5LIB=/usr/local/lib/perl5/site_perl/#{perl_version}/darwin-thread-multi-2level
You should replace
#{perl_version}
with system perl's version.For macOS Big Sur:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
git: 'svn' is not a git command.
,但随后出现了 Can't locate SVN/Core.pm
错误。感谢你让我更接近解决问题,我还是给你一个 +1。谢谢! - Christiaan Westerbeek更新:2020年9月
看来这已经是终点了。按照原始建议将永久删除Subversion。我找到了适用于MacOS的验证版本的Subversion,并下载安装了它。然后,我需要将Subversion添加到$PATH
变量中,以取代苹果的svn
(只会打印一条消息,说明Subversion不再包含在内)。要添加它,请在您的~/.zprofile
中添加此行:
export PATH=/opt/subversion/bin:$PATH
这将修复svn
。我仍然没有弄清楚如何修复git svn
。
NB:我也知道可以从homebrew
获取Subversion,但是homebrew
被我的公司政策禁止。如果homebrew
对某人更有效,请在此处发布您的结果。
原始答案:2020年3月
今天发生了同样的事情。软件更新后,git svn
和svn
消失了。看起来Apple正在XCode中弃用Subversion:
不再通过Xcode提供Subversion的命令行工具支持-包括svn、git-svn和相关命令。如果您需要Subversion或相关命令行工具,请通过运行xcode-select --install安装命令行工具包。(50266910)
同时,我能够通过删除XCode命令行工具并重新安装它们来解决此问题:
sudo rm -Rf /Library/Developer/CommandLineTools
sudo xcode-select --install
之后,git svn
和svn
又回来了。希望这能让我们在最终停用和删除之前保持运行。
brew install git
brew install svn
/usr/bin/perl
如果您使用brew安装了perl,请卸载它。
brew uninstall perl
使用 which perl
检查是否正在使用路径为 /usr/bin/perl
的系统默认perl。确保git-svn使用 #!/usr/bin/perl
,使用以下命令检查git-svn正在使用哪个版本的perl。
$ head -1 $(brew --prefix)/opt/git/libexec/git-core/git-svn
#!/usr/bin/perl
检查你的 SVN 的 Perl 版本,位于 /usr/local/Cellar/subversion/1.14.1/lib/perl5/site_perl/5.18.4
如果你遇到了错误 Can't locate SVN/Core.pm in @INC
,你还需要设置 PERL5LIB 路径,对于 Catalina 操作系统:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.18.4/darwin-thread-multi-2level
对于 Big Sur 操作系统:
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level
error: git-svn died of signal 11
,但这可能与 SVN 转储本身有关。 - Christiaan Westerbeekbrew install git-svn
svn
不是Git
的一部分,你需要单独安装git-svn
,它会添加git-svn
命令供git svn
调用。可能某些情况下被取消了安装,或者它没有被设置到$PATH
环境变量中。由于svn
不是Git
内建的工具,这两个工具之间容易出现不协调的情况。 - torek