6
votes

Comment Git décide-t-il quelle version de SVN à utiliser dans GIT-SVN?

J'ai installé git code> et svn code> avec homebrew sur mon Mac en cours d'exécution 10.7.4. Il existe une version de svn code> sur ma machine dans / usr / bin code> qui semble être la version qui git svn code> utilise.

$ 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


1 commentaires

Quelle est la sortie de quel svn et ce qui est dans votre chemin


3 Réponses :


1
votes

Votre système dispose de deux versions de subversion installées: 1.6.17 dans / usr / bin / svn et 1.7.5 dans / usr / local / bin / svn . Lorsque vous exécutez svn , il analyse votre $ chemin correctement pour ramasser celui-ci dans / usr / local / bin / svn , mais git-svn ne dérange pas et utilise simplement la version dans / usr / bin .

avoir eu un coup d'œil rapide à travers le code, il n'y a rien dans git-svn.pl ou Alien-svn (la bibliothèque de subversion perl que git-svn utilise) Points explicitement à tout svn binaire, donc je soupçonne qu'il s'agit d'une "fonctionnalité" de sécurité pour éviter de regarder votre page de route $ . . .

L'option facile, si vous avez accès, consiste à remplacer / usr / bin / svn avec / usr / local / bin / svn ; éventuellement en supprimant et en remplaçant avec un lien symbolique. Sinon, je soupçonne que vous devrez creuser la source de git-svn.pl et réécrivez-le pour accepter votre chemin personnalisé $ chemin . .


1 commentaires

J'ai essayé l'idée symbolique, il n'a pas fonctionné, Git-Svn a toujours réussi à utiliser SVN 1.6.17, ce qui n'a pas de sens pour moi. J'aimerais savoir comment désinstaller complètement cette version de SVN.



7
votes

J'ai fait un peu de creuser et il ressemble à Git-Svn utilise les liaisons Perl de Subversion. Après une petite expérimentation, j'ai trouvé que l'installation d'une version améliorée de SVN avec Perl activé em> corrigé le problème. Sur Mac OSX, cela irait quelque chose comme ceci:

# First, I had to take ownership of the perl libs dir,
# so homebrew could create perl modules
chown $USER -R /Library/Perl/5.12/darwin-thread-multi-2level

# Then, remove and reinstall Subversion, but add the perl option:
brew remove svn
brew install --perl svn

# Lastly, reinstall git (this may be optional, but it may also help.)
brew remove git
brew install git


1 commentaires

J'ai essayé votre solution et que git svn -version se réfère toujours à la version SVN System SVN donc je renomme le /library/developer/commandlinetools/library/perl/5.16/darwin -thread-Multi-2level \ svn to SVN-Annant et /Library/developer/commandlinetools/library/perl/5.16/darwin -thread-Multi-2level \ auto \ svn to à Svn-old (Utiliser sudo ) et le remplacer par Symlink de /usr/local/cellar/subversion/1.8.8/Library/Perl/5.16/darwin- Thread-multis-2level / svn et /usr/local/cellar/subversion/1.8.8/Library/perl/5.16/darwin- fil-fil-2level / auto / Svn respectivement



0
votes

Pour ceux qui atteignent ici avec le même problème: Maintenant, Git a une option d'utilisation de la version de SVN de Homebrew:

brew install --with-brewed-svn git


0 commentaires