Por que o git-svn não respeita meu $ PATH?

1

Instalei git e svn com homebrew no meu mac executando 10.7.4. Existem duas versões do svn na minha máquina e eu configurei meu caminho para verificar as coisas do homebrew primeiro. Infelizmente o git está usando a versão errada do svn, então ele instalou sua própria versão em algum outro lugar, ou está ignorando o meu caminho.

$ 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

Eu olhei brevemente no git-svn.pl, infelizmente eu não sei perl e não pude determinar se o caminho estava sendo colocado lá. Então, por que o git não usa o meu caminho e como posso fazer com que ele use a versão do svn que eu preciso?

Obrigado pela leitura.

    
por lashleigh 14.06.2012 / 20:24

1 resposta

2

git svn não está usando seu $PATH . Está usando $SVN::Core::VERSION , como você pode ver no git-svn.perl, ll. 408 - 412 em git version 1.7.11.rc3 :

sub version {
        ::_req_svn();
        print "git-svn version $VERSION (svn $SVN::Core::VERSION)\n";
        exit 0;
}

Nem /usr/local/bin/svn nem /usr/bin/svn controlam esta versão. Consegui replicar seu problema no OSX 10.7.4 e corrigi-lo com o shell 'cpan':

sudo cpan;   # sudo required on the mac for the subversion make
cpan[1]> install SVN::Core

Acerte Enter em cada prompt e mantenha os padrões. Vai demorar um pouco e pode exigir a instalação de algumas dependências. Meu local tinha tudo que eu precisava, mas eu tenho um número insalubre de bibliotecas aleatórias instaladas. Digite exit ou Ctrl+C depois que terminar a compilação. Agora tente git svn --version :

$ git svn --version
git-svn version 1.7.11.rc3.5.g2ae48a9 (svn 1.7.3)
    
por 16.06.2012 / 00:22