2010-06-10 14 views
5

A cosa servono i messaggi di commit? Li ho sempre scritti come spiegazione di quello che ho fatto, ma di recente sono entrato in una discussione al riguardo con un collega che scrive messaggi che spiegano perché lo ha fatto. Qual è il giusto, o c'è un'altra risposta completamente?Messaggi di commit corretti

NOTA: Non ho assolutamente idea se esiste una risposta "giusta" per questo. Come tale, l'ho etichettato come wiki della comunità e non accetterò una risposta. Gli Upvotes decideranno il vincitore :)

risposta

6

Come preferenza personale, posso dire a che cosa è stato fatto osservando direttamente le differenze nei file. Il perché è la cosa che non posso dedurre semplicemente guardando le modifiche effettive.

Se le modifiche sono significative o complicate, quindi includerei non solo il perché, ma anche una breve panoramica dello come.

+0

Visualizzo un messaggio di commit come e-mail. Il "cosa" è la riga dell'oggetto, forse facendo riferimento a un bug #, ma dovrebbe descrivere brevemente la modifica Il corpo del messaggio di commit è il perché. –

+1

In realtà, guardando il diff ti dice * come * è stato fatto, i commenti nel codice e il sistema di tracciamento dei problemi dovrebbero dirti * perché *, e il messaggio di commit dovrebbe dirti * cosa *, preferibilmente insieme a un link a il sistema di tracciamento dei problemi. A mio parere, ovviamente. –

+0

Alcune modifiche non si possono facilmente inviare a "commenti ... dovrei dirti perché": eliminazione del codice marcia, ad esempio. Aggiungere il "perché" ai commenti ogni volta potrebbe finire in uno scenario SCM-in-source-code. Certo, a volte * ha * senso aggiungere un commento che spieghi perché l'approccio "ovvio" di aggiungere del codice qui sarebbe sbagliato. –

1

Penso che entrambi siano utili. Una rapida descrizione di ciò che è stato modificato ("Aggiunta della convalida della lunghezza per AddUserForm") è più semplice rispetto a una differenza, specialmente se stai sfogliando più commit. Perché il cambiamento è stato fatto, quale bug è stato corretto, ecc. È ovviamente una cosa molto buona da avere, anche.

1

Io uso il messaggio di commit come executive summary di ciò è stato cambiato.

Il sommario esecutivo è un [...] breve documento che riassume [...] in modo tale che i lettori possano rapidamente familiarizzare con una grande quantità di materiale senza dover leggere tutto.

Il perché è documentato da qualche altra parte: un sistema di tracciamento problema, i requisiti di documentazione, ecc ho comprendono anche collegamenti dal messaggio di commit al perché, e viceversa.

+0

Perché è importante - se non lo stai documentando altrove, inseriscilo nel messaggio di commit. –

+0

@theatrus, sono assolutamente d'accordo, ma per qualsiasi progetto di dimensioni medio-grandi, i messaggi di commit sono ** non ** il luogo dove documentare il tuo * perché *. – Dolph

+0

@Dolph, penso che i messaggi di commit siano un * ottimo * posto dove mettere il codice-perché, ma sono d'accordo con te sul fatto che è un brutto posto mettere i project-whys. Esempio: "Questo codice stava rompendo foo perché segfaulted sulla barra": buono. "Questa funzione è necessaria per supportare Joe di Foo Inc.": male. –

1

I messaggi di commit sono ciò che si fa di loro, ma quando ce ne sono centinaia per un determinato file o migliaia per un progetto, si desidera essere in grado di scansionarli cercando determinate modifiche o la natura delle modifiche . In effetti, sono come i commenti al codice e devono essere il più utile possibile, ma conciso e conciso. Forse è meglio pensarli come tweet: trasmettere il massimo significato in un breve spazio.

Come qualcuno che ha lavorato su basi di codice di grandi dimensioni per decenni, e anche su progetti più piccoli che abbracciano un anno o due, non ho trovato nulla di più irritante quando combavo registri di commit di messaggi come "oops" o "bug fisso". Se hai corretto un bug, dicci quale (un numero di bug, per lo meno). È tutto importante per l'inevitabile analisi legale in fondo alla strada.

Problemi correlati