git-svn написан на perl и использует модуль SVN :: Core, поэтому он использует любую версию библиотеки svn, на которую указывает этот модуль.Чтобы заставить git-svn использовать более новую версию svn, вы, возможно, могли бы обновить системный модуль SVN :: Core ... a sudo cpan SVN::Core
может быть достаточно.В качестве альтернативы вы можете заменить библиотеки svn в /usr/lib.
Я не могу выполнить ни одно из перечисленных выше действий, поскольку у меня нет прав администратора на моей рабочей машине.Вот что я сделал, чтобы преодолеть это.Если вы выберете этот маршрут, вам может потребоваться настроить некоторые из путей ниже.Я использую ~/local/lib
, ~/local/bin
и т. Д.
Установите следующие переменные оболочки:
export PERL_MB_OPT="--install_base $HOME/local"
export PERL_MM_OPT="INSTALL_BASE=$HOME/local"
Затем выполните cpan SVN::Core
.В какой-то момент он спросит: «Вы хотите передать какие-либо аргументы для настройки?», На что я ответил --libdir=/Users/sean/local/lib --prefix=/Users/sean/local
.Это создаст новую копию библиотеки svn и привязки perl для нее, которая в итоге закончится в ~/local/lib/perl5/
.
Теперь, в моей установке git (из исходного кода), git-svn делаетthis:
use lib (split(/:/, $ENV{GITPERLLIB} || "/Users/sean/local/lib/perl5/site_perl"));
Итак, я переместил свой недавно установленный модуль SVN с ~/local/lib/perl5/
на ~/local/lib/perl5/site_perl
.Есть несколько вещей, чтобы переехать;Ваша директория lib/perl5
должна выглядеть примерно так:
(может быть проще установить GITPERLLIB на $HOME/local/lib/perl5
и переместить Git.pm из site_perl
)
Я явно не гуру Perl, так что, вероятно, есть лучший способ сделать все это.Однако я могу подтвердить, что это работает: git-svn version 1.7.3.1 (svn 1.6.12)