2010-03-18 4 views
3

Je lance git 1.7 sur Mac OSX, installé via Homebrew. Je suis en train d'utiliser git svn pour travailler avec un serveur Subversion qui nécessite Subversion 1.5 clients (une restriction imposée par un crochet pre-commit.)J'ai besoin de git-svn pour jouer le rôle de client Subversion v1.5 +

L'exécution git svn --version révèle que dans la mesure où git concerne, git svn est équivalente à svn v1.4.4.

Je ne peux pas établir si git svn est un clone total de subversion, et doit donc être mis à jour pour répondre à la fonctionnalité subversion v1.5, ou si git est compilé ou pointe simplement vers une version de subversion sous le capot.

J'ai eu du mal à trouver quelqu'un d'autre d'essayer de mettre à jour la version de git-svn, et je devine que cette restriction version client est inhabituel, mais je suis coincé avec elle (environnement d'entreprise.)

Est-il possible avoir git fonctionne comme svn 1.5?

Répondre

3

Je suis en git --version 1.6, et quand je lance git svn --version, je reçois git-svn version 1.6.5.

apple:mac-zfs alex$ git svn --version 
git-svn version 1.6.6 (svn 1.6.5) 
apple:.git alex$ git --version 
git version 1.6.6 
apple:mac-zfs alex$ svn --version 
svn, version 1.6.5 (r38866) 
    compiled Oct 16 2009, 02:54:10 

Est-il possible que l'installation d'une version ultérieure de Git ou SVN vous aidera? Ma conjecture est la dernière. NB Le/usr/bin/svn que j'ai provient d'OSX 10.6.2, ressemble au paquet com.apple.pkg.BSD. Il est possible qu'une ancienne version de SVN soit en 10.5.8; vous pouvez télécharger un universel de http://subversion.apache.org/packages.html#osx

+0

Même ici. J'ai svn 1.4.4 et git-svn rapporte svn la version 1.4.4 aussi. – ZeissS

+0

Remarque: Git svn recherchera le chemin Git, qui est compilé dans et ne fait pas partie de $ PATH. Donc, si vous avez une version ailleurs, je supprimerais simplement le fichier fourni par Apple et j'installerais le vôtre dans/usr/bin, ou un lien symbolique depuis/use/bin vers/use/local/bin. – AlBlue

+0

Merci d'avoir clarifié les règles du chemin git, cela déballe une grande partie du problème que j'ai. –

7

Vous pouvez exécuter svn --version pour confirmer que les versions correspondent, mais git svn utilise des liaisons svn Perl pour travailler réellement avec svn, donc chaque fois que ceux-ci sont, git svn les ramassera. Il n'y a pas d'installation svn à l'intérieur de git svn.

Conclusion: Vous devez mettre à jour votre installation svn à 1.5 pour que git svn fonctionne sous svn 1.5.

+0

Merci pour cette précision. Savez-vous comment les bindings svn perl déterminent quel svn utiliser? J'ai le stock, version d'expédition de Subversion de Mac OSX (10.5), situé dans '/ usr/bin', et c'est v1.4.4; correspondant à la version 'git svn' pointe vers. Cependant, j'ai v1.6.6 installé par Homebrew, situé dans '/ usr/local/bin /'. Mon chemin est configuré, et 'quel svn' pointe vers la version v1.6' brasser 'désirée. La liaison perl sous-jacente possède-t-elle sa propre résolution de chemin lors de l'exécution ou a-t-elle été définie lors de l'installation de git? –

+0

Je commencerais par vérifier votre variable 'LD_LIBRARY_PATH'. Il est possible qu'il manque '/ usr/local/lib', ce qui devrait être le cas où les bibliothèques svn qui correspondent à votre'/usr/local/bin/svn' se cachent. L'exécutable 'svn' lui-même pourrait avoir codé en dur ce chemin en interne, mais' git-svn' ne saura pas où récupérer les libs - il retournera probablement vers les anciennes bibliothèques dans '/ usr/lib' cela correspond '/ usr/bin/svn'. – MikeSep

+0

Vous devrez probablement vérifier 'PERL5LIB' également. –