为什么 git-svn 不尊重我的 $PATH?

为什么 git-svn 不尊重我的 $PATH?

我在运行 10.7.4 的 Mac 上安装了gitHomebrew svn。我的机器上有两个版本的 svn,我已设置路径以首先检查 Homebrew 内容。不幸的是,git 使用了错误版本的 svn,因此它要么在其他地方安装了自己的版本,要么忽略了我的路径。

$ git --version
git version 1.7.10.4

$ svn --version
svn, version 1.7.5 (r1336830)

$ git svn --version
git-svn version 1.7.10.4 (svn 1.6.17)

$ /usr/bin/svn --version
svn, version 1.6.17 (r1128011)

$ which git svn
/usr/local/bin/git
/usr/local/bin/svn

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/git/bin

我简单查看了 git-svn.pl,不幸的是我不懂 perl,无法确定路径是否在那里设置。那么,为什么 git 不使用我的路径,我怎样才能让它使用我需要的 svn 版本?

谢谢阅读。

答案1

git svn$PATH根本没有使用你的。它正在使用$SVN::Core::VERSION,正如您在 git-svn.perl 中的 ll. 408 - 412 中所见git version 1.7.11.rc3

sub version {
        ::_req_svn();
        print "git-svn version $VERSION (svn $SVN::Core::VERSION)\n";
        exit 0;
}

/usr/local/bin/svn不能控制/usr/bin/svn这个版本。我能够在 OSX 10.7.4 上复制您的问题,并通过以下方式更正它:‘cpan’ 外壳:

sudo cpan;   # sudo required on the mac for the subversion make
cpan[1]> install SVN::Core

每次提示时都点击Enter并保留默认值。这将需要一段时间,并且可能需要安装一些依赖项。我的本地有我需要的一切,但我安装了太多的随机库。完成编译后,输入exitCtrl+C。现在尝试git svn --version

$ git svn --version
git-svn version 1.7.11.rc3.5.g2ae48a9 (svn 1.7.3)

相关内容