git: svn 不是 git 命令 - Mac

git: svn is not a git command - Mac

我昨天没有问题,但今天我不能 运行 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 上

更新:2020 年 9 月

看来要结束了。按照最初的建议将永远删除颠覆。找了个verified version of Subversion for MacOS,下载安装了。然后我需要将 Subversion 添加到 $PATH 变量以取代 Apple 的 svn(它只打印一条消息说不再包含 subversion)。要添加它,请将此行添加到您的 ~/.zprofile:

export PATH=/opt/subversion/bin:$PATH

这将修复 svn。我仍然没有弄清楚如何修复 git svn.

注意: 我也知道可以从 homebrew 获得颠覆,但是 homebrew 是我公司的政策所禁止的。如果 homebrew 对某些人效果更好,请 post 此处显示您的结果。

原始答案:2020 年 3 月

今天我也遇到了同样的事情。软件更新后,git svnsvn消失了。好像Apple is deprecating Subversion in XCode:

Command line tool support for Subversion — including svn, git-svn, and related commands — is no longer provided by Xcode. If you need Subversion or related command line tools, install the Command Line Tools package by running xcode-select --install. (50266910)

同时,我可以通过删除 XCode 命令行工具并重新安装它们来解决这种情况:

sudo rm -Rf /Library/Developer/CommandLineTools
sudo xcode-select --install

之后,git svnsvn回来了。希望这会让我们在最终弃用和删除之前暂停执行。

我在 GitHub.

上找到了 macOS Big Sur v11.1 (20C69) 的简单固定解决方案
  1. 确保安装 git、svn、perl 和 brew。

    brew install git
    brew install perl
    brew install subversion
    
  2. 编辑/usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn

    #!/usr/bin/perl替换为#!/usr/local/bin/perl

  3. git svn 有效。


以上解决方案仅适用于 perl 5.32.0.

当我将 perl 更新到 5.32.1 时,git svn 无法再工作。

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

我在 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

将 macOS 从版本 10.15 (Catalina) 升级到 10.15 (Big Sur) 后,我 运行 遇到了同样的问题。

非常感谢您的回答。这 3 个步骤让我完成了 99%。但后来我得到了错误

Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/Cellar/git/2.30.0/share/perl5 /Applications/Xcode.app/Contents/Developer/Library/Perl/5.28/darwin-thread-multi-2level /Library/Developer/CommandLineTools/Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28/darwin-thread-multi-2level /Library/Perl/5.28 /Network/Library/Perl/5.28/darwin-thread-multi-2level /Network/Library/Perl/5.28 /Library/Perl/Updates/5.28.2 /System/Library/Perl/5.28/darwin-thread-multi-2level /System/Library/Perl/5.28 /System/Library/Perl/Extras/5.28/darwin-thread-multi-2level /System/Library/Perl/Extras/5.28) at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN/Utils.pm line 6. Compilation failed in require at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 25. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/share/perl5/Git/SVN.pm line 32. Compilation failed in require at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23. BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.30.0/libexec/git-core/git-svn line 23.

如果其他人遇到同样的问题,我的解决方案是运行这个命令

export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level

我从中找到了命令 this GitHub answer

  1. 先用brew安装git和svn
brew install git
brew install svn
  1. /usr/bin/perl
  2. 使用系统默认的 perl

如果您使用 brew 安装了 perl,请将其卸载。

brew uninstall perl

使用 which perl 检查是否在 /usr/bin/perl 使用系统默认的 perl。确保 git-svn 使用 #!/usr/bin/perl 使用以下命令检查哪个 perl 是 git-svn 使用

$ head -1 $(brew --prefix)/opt/git/libexec/git-core/git-svn
#!/usr/bin/perl
  1. /usr/local/Cellar/subversion/1.14.1/lib/perl5/site_perl/5.18.4

    检查你的 svn 的 perl 版本
  2. 如果出现错误Can't locate SVN/Core.pm in @INC 您还需要为 Catalina 设置 PERL5LIB 路径:

export PERL5LIB=/usr/local/lib/perl5/site_perl/5.18.4/darwin-thread-multi-2level

大苏尔:

export PERL5LIB=/usr/local/lib/perl5/site_perl/5.28.2/darwin-thread-multi-2level

参考:https://github.com/Homebrew/homebrew-core/issues/52490