Как обновить версию SVN, используемую git-svn - PullRequest
12 голосов
/ 03 декабря 2010

Я использую 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 коммит.

Кто-нибудь знает, как обновить версию svn, которую использует git-svn? Я запускаю это на OSX 10.5

Ответы [ 5 ]

10 голосов
/ 03 декабря 2010

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 должна выглядеть примерно так:

alt text

(может быть проще установить GITPERLLIB на $HOME/local/lib/perl5 и переместить Git.pm из site_perl)

Я явно не гуру Perl, так что, вероятно, есть лучший способ сделать все это.Однако я могу подтвердить, что это работает: git-svn version 1.7.3.1 (svn 1.6.12)

2 голосов
/ 03 декабря 2010

Если вы можете использовать MacPorts, простой port install git-core +svn установит последнюю версию как самого git, так и клиента и библиотек svn.

$ git svn --version
git-svn version 1.7.3.2 (svn 1.6.15)
0 голосов
/ 12 октября 2017

Для меня сработала следующая последовательность шагов:

  1. Получить исходный текст Apache
  2. Создайте Subversion из исходного кода, используя make, а затем выполните:
    • сделать swig-pl
  3. Установите Subversion, используя make install, а затем выполните:
    • make install-swig-pl
  4. Получить исходный код git
  5. Сборка Git как обычно

Ссылка: http://www.linuxfromscratch.org/blfs/view/cvs/general/subversion.html

0 голосов
/ 26 августа 2014

Одним из способов изменить версию 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 из здесь .

0 голосов
/ 19 октября 2012

Примечание: начиная с git 1.7.8 (конец октября 2012 г.), git svn будет работать с SVN1.7.

См. " [ANNOUNCE] Git v1.8.0-rc3 ":

"git svn" обновлен для работы с SVN 1.7.

...