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

542
lashleigh

Я установил gitи svnс Homebrew на моем 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

1 ответ на вопрос

2
Christopher

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)