2009-12-01 4 views
9

Parfois, quand je fais un pull au lieu d'un rebasage après un simple changement de fichier commettre, je vois ce qui suit dans le journal maître:Qu'est-ce qu'une fusion triviale dans git?

Trivial fusion

Mais il n'y a pas diff de ce qui a changé? Quel est le but de ce message de journal? Est-ce que quelque chose a changé, je ne sais pas? Ça me fait peur.

Répondre

12

git n'insère pas ce message dans le journal à aucun moment. Je vais faire une supposition et supposer que vous avez vu ce message dans gitweb. Gitweb imprime ce message s'il n'y a pas de sortie d'un diff combiné. Cela se produit lorsque les seules différences étaient toutes dans les parties où un seul côté de la fusion a été modifié, et ce changement a été apporté sans modification dans la fusion. Cela signifie essentiellement qu'il n'y a pas eu de conflits et que rien de magique n'a été ajouté dans le commit de fusion.

2

git page d'aide de fusion (celui que vous obtenez en tapant « help git fusion ») déclare:

vous avez reçu le même patch à partir d'une source externe pour produire le même résultat que ce que vous fusionnez

+0

Je ne sais pas où vous avez trouvé ceci, mais cela n'a pas fait partie de la page d'aide git merge depuis v1 .5. *. –

2

Je confirme le seul endroit codebase git où le message "Merge Trivial" s'affiche est en gitweb.perl, dans le git_patchset_body() function (à droite here):

if ($patch_number == 0) { 
    if (@hash_parents > 1) { 
     print "<div class=\"diff nodifferences\">Trivial merge</div>\n"; 
    } else { 
     print "<div class=\"diff nodifferences\">No differences found</div>\n"; 
    } 
} 

Le document (inclus dans la documentation Git) trivial-merge.txt-t expliquer en détail tous les cas qui résultent en une "fusion triviale" (et ils ont été discutés en this thread)

+0

Merci pour l'info supplémentaire! –