Git: avertissement: refname ‘xxx’ est ambigu lors de l’utilisation de git-svn

J’utilise git comme interface pour Subversion (via git svn).

Donc, pour chaque tronc / twig svn j’ai une twig distante dans git nommée “remotes / xxx”. Par exemple “télécommandes / tronc”, “télécommandes / coolfeature”.

Maintenant, je veux avoir une twig locale “par défaut” pour chaque twig distante, pour l’utiliser pour dcommit. Le problème est que je veux que ces twigs portent le nom de twigs Subversion, comme “trunk”, “coolfeature”, donc j’ai les twigs suivantes dans git:

trunk coolfeature remotes/trunk remotes/coolfeature 

Le problème est que chaque fois que je référence “trunk” ou “coolfeature”, git se plaint que le nom de la twig est ambigu. Pas grave, mais je me sens mal à l’aise.

La question est, comment puis-je gérer cet avertissement, en supposant que simplement renommer les twigs n’est pas ce que je veux faire. Quelles sont les meilleures pratiques pour de tels cas?

Si vous transmettez le --prefix=svn/ flag à la commande git svn clone , toutes les twigs Subversion seront nommées comme remotes/svn/branchname . Si cela vous convient, il corrige l’avertissement “refname is ambiguous”. Cela vous donne également un bon moyen de faire référence aux twigs svn distantes, comme par exemple si vous souhaitez créer une twig de suivi locale, cela pourrait être:

$ git checkout -b branchname svn/branchname

La twig locale porte alors le même nom que la twig svn distante, et aucun problème de nomfichier ambigu.

Si vous voulez simplement vous débarrasser des avertissements, définissez core.warnAmbiguousRefs sur false :

 git config --global core.warnambiguousrefs false 

Si vous ne souhaitez utiliser ce comportement que pour un seul référentiel, omettez l’ --global .

Il est possible que vous ayez un autre «tronc» et une «coolfeature» comme étiquette. Dans ce cas, git ne sait pas si vous faites référence à une twig ou à une balise. Renommez les tags et vérifiez si git ne rapporte pas le nom “ambigu”

Pour éviter les conflits, en faisant référence aux twigs locales, préfixez-les avec head/

par exemple, le topic twig conflictuel

 $ git diff topic remotes/topic warning: reframe 'topic' is ambiguous. ... 

devient

 $ git diff heads/topic remotes/topic ...