Почему git-svn не уважает мой $PATH?

Я установил git а также svn с доморощенным на моем Mac работает 10.7.4. На моей машине есть две версии svn, и я установил свой путь, чтобы сначала проверять домашние вещи. К сожалению, 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 при каждом запросе и сохраняйте настройки по умолчанию. Это займет некоторое время и может потребовать установки некоторых зависимостей. В моем локальном хранилище было все, что мне нужно, но у меня установлено нездоровое количество случайных библиотек. Тип exit или же Ctrl+C после завершения компиляции. Сейчас попробуй git svn --version:

$ git svn --version
git-svn version 1.7.11.rc3.5.g2ae48a9 (svn 1.7.3)
Другие вопросы по тегам