2009-12-01 1 views
9

A volte, quando faccio un tiro al posto di un rebase dopo una semplice modifica di un file commettere vedo il seguente nel registro maestro:Che cosa è una semplice unione in git?

Trivial unire

Ma non c'è diff di cosa è cambiato? Qual è il punto di questo messaggio di registro? È cambiato qualcosa che non conosco? Mi spaventa.

risposta

12

git non inserisce questo messaggio nel registro in alcun punto. Prenderò un'ipotesi e presumo che tu abbia visualizzato questo messaggio in gitweb.

gitweb stampa questo messaggio se non vi è uscita da una diff combinata. Ciò accade quando le uniche differenze erano tutte in blocchi solo se un lato della fusione veniva modificato e questo cambiamento veniva apportato non modificato nella fusione. Questo in pratica significa che non ci sono stati conflitti e che non è stata aggiunta alcuna magia nel commit di unione.

2

git pagina di aiuto di merge (quello che si ottiene digitando "git help merge") afferma:

avete ricevuto la stessa patch da una fonte esterna per produrre lo stesso risultato di quello che si uniscono

+0

non sono sicuro dove hai trovato questo, ma questo non è stato parte della pagina git merge aiuto dal v1 .5. *. –

2

confermo l'unico posto in codebase git in cui viene visualizzato il messaggio "Merge Trivial" è in gitweb.perl, nel git_patchset_body() function (a destra 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"; 
    } 
} 

Il documento (incluso nella documentazione Git) trivial-merge.txt fa spiegano in dettaglio tutti i casi che danno luogo a un "merge banale" (e sono stati discussi in this thread)

+0

Grazie per le informazioni extra! –