Как обновить версию SVN, используемую git -svn
Я использую git -svn и люблю его. Но мы просто переключили наше репо на тот, который требует версии svn 1.5.0 или выше. В настоящее время у меня есть это:
triedsound-lm:android holmesj$ git svn --version
git-svn version 1.7.3.1 (svn 1.4.4)
triedsound-lm:android holmesj$ svn --version
svn, version 1.6.15 (r1038135)
compiled Nov 29 2010, 13:32:56
Итак, когда я пытаюсь dcommit, я получаю это сообщение об ошибке:
...
...
A repository hook failed: Commit blocked by start-commit hook (exit code 1) with output:
Only clients >= 1.5.0 may commit to this repository.
For upgrade instructions please see:
http://twiki.corp.yahoo.com/view/Subversion/SubversionFAQ#Upgrade
at /usr/local/git/libexec/git-core/git-svn line 573
Это действительно отстой, я не хочу останавливать использование git -svn. Это было бы просто ужасно. Это будет сосать, если мне просто нужно выжать все мои git в один большой svn commit.
Кто-нибудь знает, как обновить версию svn, которую использует git -svn? Я запускаю это на OSX 10.5
Ответы
Ответ 1
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 делает это:
use lib (split(/:/, $ENV{GITPERLLIB} || "/Users/sean/local/lib/perl5/site_perl"));
Итак, я перевел мой только что установленный SVN-модуль с ~/local/lib/perl5/
на ~/local/lib/perl5/site_perl
. Есть несколько вещей, которые нужно переместить; ваш каталог lib/perl5
должен выглядеть примерно так:
![alt text]()
(Возможно, проще установить GITPERLLIB в $HOME/local/lib/perl5
и переместить Git.pm из site_perl
)
Я, очевидно, не perl-гуру, поэтому, вероятно, лучший способ добиться всего этого. Однако я могу подтвердить, что он работает: git-svn version 1.7.3.1 (svn 1.6.12)
Ответ 2
Если вы можете использовать MacPorts, простой port install git-core +svn
установит последнюю версию как самого git, так и клиента и библиотек svn.
$ git svn --version
git-svn version 1.7.3.2 (svn 1.6.15)
Ответ 3
Примечание: начиная с git 1.7.8 (конец октября 2012 года), git svn
будет работать с SVN1.7.
См. " [ОБЪЯВАТЬ] git v1.8.0-rc3":
"git svn
" обновлен для работы с SVN 1.7.
Ответ 4
Одним из способов изменения версии svn, используемой git -svn, является переменная окружения PERL5LIB в соответствующем svn-perl установки svn по вашему выбору в вашей системе. Это нужно сделать, добавив следующую строку в профиль bash:
export PERL5LIB=/usr/local/lib/svn-perl
Путь будет меняться в зависимости от каталога установки svn-perl-привязок. Например, клиент svn WanDisco устанавливает привязки svn-perl по умолчанию и обычно находится под /opt/subversion/lib/svn-perl
. С помощью homebrew
вы можете запустить следующую команду для установки svn с привязками perl:
$ brew install subversion --perl
Для более старых версий:
$ brew install subversion17 --perl
$ brew install subversion16 --perl
Я узнал о переменной PERL5LIB от здесь.
Ответ 5
Для меня была выполнена следующая последовательность шагов:
- Получить источник subversion для Apache
- Создайте subversion из источника, используя make, а затем выполните:
- Установите subversion, используя make install, а затем выполните:
- Получить git источник
- Построить git как обычно
Ссылка: http://www.linuxfromscratch.org/blfs/view/cvs/general/subversion.html