110 votes

Suggestions pour un bon message de livraison : format/guide ?

Je suis au début d'un nouveau projet, et j'essaie de mettre en place le référentiel de manière intelligente et d'établir quelques directives de style de code pour que chacun puisse se concentrer sur le code.

La plupart des choses sont faites, mais je ne suis toujours pas sûr du format que je dois appliquer pour les messages de livraison. Je suis pour la liberté et pour dire aux gens de les rendre clairs et complets, mais j'ai constaté que cela fonctionne rarement, les gens ayant des notions très différentes de "clair" :).

Et jusqu'à présent, je n'ai jamais trouvé de système satisfaisant. Ce que je fais le plus souvent est : un résumé en une ligne de la livraison, puis des puces décrivant chaque changement plus en détail.

Mais il est souvent difficile de décider ce qui mérite une puce et ce qui n'en mérite pas, et une sorte de classification, par fonctionnalités, fichiers, ou changements mineurs/majeurs semble appropriée. Malheureusement, à chaque fois que j'essaie de faire cela, je finis par écrire des messages commit stupidement longs pour des changements triviaux...

Comment faites-vous ?

64voto

Anders Sandvig Points 7964

Je pense que vous devez compter sur le fait que les gens sont capables de penser par eux-mêmes. Vous pouvez fournir des directives de base, comme celles que vous avez décrites, mais au final, les gens doivent les comprendre pour les suivre.

Voici un extrait de mes meilleures pratiques recommandées pour le contrôle de version :

Toujours écrire un commentaire quand on commet quelque chose dans le référentiel. Votre commentaire doit être bref et précis, décrivant ce qui a été modifié et éventuellement pourquoi. Si vous avez effectué plusieurs modifications, écrivez une ligne ou une phrase sur chaque partie. Si vous vous retrouvez à écrire une très longue liste de changements, envisagez de diviser votre livraison en plus petites parties, comme décrit précédemment. Faire précéder vos commentaires d'identifiants comme Fix ou Add est un bon moyen d'indiquer le type de changement que vous avez effectué. Cela facilite également le filtrage ultérieur du contenu, soit visuellement, par un lecteur humain, soit automatiquement, par un programme.

Si vous avez corrigé un bogue spécifique ou mis en œuvre une demande de changement spécifique, je recommande également de faire référence au numéro du bogue ou du problème dans le message de livraison. Certains outils peuvent traiter cette information et générer un lien vers la page correspondante dans un système de suivi des bogues ou mettre automatiquement à jour le problème en fonction de la livraison.

Voici quelques exemples de bons messages d'engagement :

Changed paragraph separation from indentation to vertical space.
    ...
    Fix: Extra image removed.
    Fix: CSS patched to give better results when embedded in javadoc.
    Add: A javadoc {@link} tag in the lyx, just to show it's possible.
    ...
    - Moved third party projects to ext folder.
    - Added lib folder for binary library files.
    ...
    Fix: Fixed bug #1938.
    Add: Implemented change request #39381.

D'après mon expérience, vous devez suivre les gens et leur donner des instructions chaque fois qu'ils ne suivent pas les règles de commit. Vous pourriez bien sûr implémenter un script pour faire respecter certaines des règles (comme le préfixe et le référencement des bogues), mais cela n'attrapera pas les personnes paresseuses qui ne prennent pas la peine d'écrire quelque chose de significatif. Je pense qu'il est important d'expliquer pourquoi vous voulez ces conventions et comment elles bénéficieront à l'équipe de développement.

La création d'une liste d'envoi de courriels et le suivi des messages qu'elle contient est un bon moyen de savoir ce que font les gens. Si quelqu'un commet quelque chose sans message satisfaisant, vous le saurez et pourrez le lui dire. Je suppose que c'est la même chose que pour les conventions de codage, pour qu'elles aient du succès, quelqu'un doit en assurer le suivi.

32voto

Jay Bazuzi Points 20462

Quelques règles que j'essaie de suivre :

  • Première ligne de la description est un bref résumé du changement. De nombreux systèmes de contrôle du code source vous permettent de voir une liste des modifications qui présentent cette ligne, ce qui vous donne un résumé approximatif.
  • Inclure l'ID du bogue et titre du bug. N'obligez pas les gens à le chercher !
    • Faites en sorte que l'ID du bogue soit un URL pour ouvrir le bogue, si votre système de suivi des bogues le permet.
  • Dites ce que vous avez changé.
  • Dites pourquoi vous avez fait ce changement, au lieu d'adopter une autre approche.
  • Soyez très détaillé .
  • Réalisation de chaque changement est minime permet de suivre plus facilement l'histoire, ainsi que d'écrire et de lire plus facilement une bonne description du commit.
  • Lorsqu'un changement est strictement une refactorisation, je commence la première ligne par REFACTORING: . Cela me permet d'ignorer cette modification lorsque je recherche une modification fonctionnelle délibérée. (Bien sûr, les changements fonctionnels accidentels, alias les bogues, peuvent toujours s'y trouver).

Pour un exemple de message de livraison très détaillé, voir cet article de blog de mon vieil ami Cyrus.

15voto

aku Points 54867

J'essaie de suivre ces règles :

  1. Soyez concis
  2. Décrire pourquoi vous le faites, pas ce que vous le faites

Le format habituel de mes messages de commit est :

Issue: #[issue number] [short description]

Si vous avez un système de suivi des bogues, indiquez le numéro du problème dans le message de livraison.
J'ai constaté que de nombreux développeurs écrivent simplement quelque chose comme "Ajouté X. Supprimé Y", mais je peux trouver cette information en regardant le code diff. S'il n'y a pas de numéro de problème attaché, il peut être difficile de le savoir. pourquoi Le développeur a fait quelques changements.

10voto

pablox Points 969

Mes 5 centimes, le lien suivant est pour git, mais de toute façon, pourrait s'avérer utile :

http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

Le principe de base (selon cet article) est d'écrire d'abord une courte description (50 caractères) et ensuite vous pouvez détailler davantage, en restant toujours en dessous de 72 caractères.

5voto

prakash Points 18075
  • Bug ID : (Si applicable)
  • Description du changement :
  • Code Révisé par :
  • Testé en unité :
  • Label Target Release :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X