49 votes

Git: avertissement: le nom de référence 'xxx' est ambigu lors de l'utilisation de git-svn

Je suis à l'aide de git comme un frontend pour Subversion (via git svn).

Ainsi, pour chaque svn trunk/branche j'ai à distance branche git nommé "remotes/xxx". Par exemple "remotes/trunk", "remotes/coolfeature".

Maintenant, je veux en avoir un "défaut" de la succursale locale pour chaque branche à distance, de l'utiliser pour dcommit. Le problème est que je veux que ces succursales à être nommé d'après la Subversion des branches, comme le "tronc", "coolfeature", j'ai donc les branches de git:

trunk
coolfeature
remotes/trunk
remotes/coolfeature

Le problème est que chaque fois que je référence "tronc" ou "coolfeature" git se plaint nom de la branche est ambigu. Pas une grosse affaire, mais je me sens mal à l'aise.

La question est, comment puis-je composer avec cet avertissement, en supposant que le fait de simplement renommer des branches n'est pas ce que je veux faire. Quelles sont les meilleures pratiques pour de tels cas?

40voto

Jason Voegele Points 1063

Si vous passez l' --prefix=svn/ drapeau de l' git svn clone à la commande, puis l'ensemble de la Subversion des branches serait nommé comme remotes/svn/branchname. Si cela est acceptable pour vous, il corrige les "refname est ambiguë" avertissement. Il vous donne aussi une belle façon de se référer à la distance svn branches, comme par exemple si vous voulez créer un local de suivi de la branche, il serait quelque chose comme:

$ git checkout -b branchname svn/branchname

La branche locale a alors le même nom que la distance branche svn, et non ambiguë refname problème.

13voto

max Points 16106

Si vous souhaitez simplement vous débarrasser de l'avertissement, définissez core.warnAmbiguousRefs sur false :

 git config --global core.warnambiguousrefs false
 

Si vous souhaitez ce comportement uniquement pour un référentiel unique, omettez l'indicateur --global .

1voto

Octavi Fornés Points 331

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

1voto

Alex Brown Points 15776

Pour éviter les messages de conflit, lorsque vous vous référez aux branches locales, préfixez-les avec head/

par exemple, la branche en conflit topic

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

devient

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X