2016-12-22 2 views
0

J'écris un outil automatique basé sur git show, qui repose sur git diff commande. J'ai écrit un petit analyseur qui prend la sortie de git show comme le texte à analyser, et dans la plupart des situations dans le résultat, les lignes commencent par '@@' indique les lignes qu'il va comparer.git diff: de nombreux correctifs avec trois '@' symbole

Cependant, j'ai rencontré une situation comme celle-ci:

@@@ -460,22 -415,8 +460,22 @@@ 

Qu'est-ce que cela signifie? Est-il possible qu'il y ait encore plus (4 ou plus) symboles '@' avec des significations encore plus subtiles?

Répondre

1

Vous montrez une fusion dans le format diff combiné. Si vous regardez la page de manuel de git show, il y a une section complète sur combined diff format, quand elle est utilisée et à quoi elle ressemble. Également dans la description initiale de git show il est dit que les fusions seront montrées comme git diff-tree --cc qui se rapporte également au format diff combiné. Oui, il peut y avoir plus de trois symboles. Il y en aura un par parent + 1 commit. Donc si vous avez une fusion avec trois parents (une soi-disant fusion octupus), il y en aura quatre aux signes. Si vous avez quatre parents, il y en aura cinq aux enseignes et ainsi de suite.

1

Il me semble que vous faites un spectacle sur une fusion, et ce morceau diffère des deux parents; cela pourrait-il être l'explication?

+0

Merci beaucoup. Pourriez-vous s'il vous plaît me fournir un document détaillé expliquant son format de sortie ou quelque chose d'autre où vous avez appris sur cette connaissance? – zsf222

+0

J'aimerais avoir de la documentation détaillée; J'ai deviné à partir de la notation, puis testé si c'était dans un repo jouet. Je m'attendrais à ce que la seule ride restante soit s'il y a une jointure de poulpe; Je ne sais pas ce que fait le format unifié avec ça. –

+0

Regardez simplement ma réponse et vous verrez qu'elle est bien documentée, directement dans la page de manuel des commandes. ;-) – Vampire