Pourquoi est-ce que git log --decorate
ne pas afficher plus d'un tag par commit ?
EDIT : Charles Bailey a trouvé la réponse (du moins dans mon cas)
Essentiellement, j'avais une balise qui pointait vers une autre balise qui pointait vers le commit. À cause de cette couche supplémentaire d'indirection, le tag n'apparaissait pas dans le journal. Je vais devoir résoudre ce problème, soit en corrigeant notre script de balisage pour qu'il soit correct, soit en utilisant le voodoo du shell script pour suivre récursivement les balises. Quoi qu'il en soit, je vais laisser cette question juste pour référence au cas où quelqu'un la voudrait. (Je suis nouveau sur stack overflow, mais je suppose que c'est le protocole correct ?)
... La question originale suit ...
Backstory : Nous utilisons GIT au travail pour le contrôle de la source, et nous avons une politique de toujours marquer un commit lorsque nous déployons. (C'est en fait un script qui fait les tags, et ensuite tire le tag sur le serveur). Comme il s'agit d'une application web avec des serveurs de mise en scène et de production séparés, nous marquons souvent une version pour la mise en scène (pour les tests ou autre), puis plus tard, nous marquons le même commit pour la production.
Il est donc très fréquent que nous ayons plusieurs balises sur le même commit. Ce serait très bien de pouvoir voir cela dans le journal de texte, mais il ne semble pas le supporter. Je contourne actuellement le problème en vérifiant manuellement la balise que je recherche, ou en lançant la fonction gitk
. Bien que ces deux solutions fonctionnent, il me semble que c'est vraiment bizarre pour git log --decorate
pour ne supporter qu'un seul tag par commit par défaut.
J'ai fait quelques recherches sur Internet, mais je n'ai pas trouvé grand-chose. Est-ce que je rate quelque chose d'évident ?
P.S. (J'utilise en fait une chaîne de format personnalisée avec %d
d'après les pages du manuel et quelques tests rapides, il est équivalent à --decorate
)
14 votes
Avez-vous essayé 'git log --decorate=full' (sans les guillemets) ?
1 votes
Quelle version de git utilisez-vous ? Je vois très bien les balises multiples dans la mienne.
0 votes
@RDL : full fait imprimer refs/heads/ ou refs/tags/ selon le cas, non ? Pas plus ou moins de refs.
0 votes
Malheureusement, je ne peux pas tester ici car je ne suis pas au travail. J'ai cependant essayé un test simple à la maison, et les balises s'affichent correctement. Peut-être est-ce une question de version ? (1.7.1 ici à la maison, 1.6.quelque chose au travail) (Désolé pour le mauvais timing de cette question)
0 votes
@Jonathan : J'ai parcouru rapidement les journaux git.git et je n'ai pas vu de correctif de régression évident, mais oui, je ne serais pas surpris que ce soit un problème de version. J'espère que vous pouvez le mettre à jour au travail, ou simplement le construire vous-même - beaucoup de choses brillantes dans les nouveaux git !
10 votes
Petite question, est-ce que vous marquez les tags, ou est-ce que vous marquez le commit ? (Les tags peuvent former des chaînes, dans mes tests, le décor a regardé les tags pointant vers un commit et les tags pointant vers un tag vers un commit mais pas plus loin que ça).
1 votes
@Charles Bailey Je pense que vous avez peut-être localisé le problème. J'ai essayé un test simple au travail (git version 1.6.3.3), et cela semble fonctionner correctement. Ce n'est donc pas un problème de version. Je vais approfondir la question plus tard. Merci pour votre perspicacité !