Votre projet doit presque toujours utiliser le temps du passé . Dans tous les cas, le projet doit toujours utiliser le même temps pour des raisons de cohérence et de clarté.
Je comprends certains des autres arguments en faveur de l'utilisation du présent, mais ils généralement ne s'appliquent pas. Les points suivants sont des arguments courants pour écrire au présent, et ma réponse.
- Écrire au présent dit à quelqu'un ce que fera l'application de l'engagement plutôt que ce que vous avez fait.
C'est la raison la plus correcte d'utiliser le présent, mais uniquement dans le bon style de projet. Cette façon de penser considère tous les commits comme des améliorations ou des fonctionnalités optionnelles, et vous êtes libre de décider quels commits garder et lesquels rejeter dans votre dépôt particulier.
Cet argument fonctionne si vous avez affaire à un projet véritablement distribué. Si vous avez affaire à un projet distribué, vous travaillez probablement sur un projet open source. Et c'est probablement un très grand projet s'il est vraiment distribué. En fait, il s'agit probablement soit du noyau Linux, soit de Git. Puisque Linux est probablement ce qui a permis à Git de se répandre et de gagner en popularité, il est facile de comprendre pourquoi les gens considèrent que son style fait autorité. Oui, le style a du sens avec ces deux projets. Ou, en général, il fonctionne avec grand, open source, distribué projets.
Ceci étant dit, la plupart des projets de contrôle de source ne fonctionnent pas comme cela. C'est généralement incorrect pour la plupart des dépôts. C'est une façon moderne de penser aux commits : Les référentiels Subversion (SVN) et CVS pouvaient à peine supporter ce style de check-ins de référentiel. Habituellement, une branche d'intégration se chargeait de filtrer les mauvais check-ins, mais ceux-ci n'étaient généralement pas considérés comme des fonctionnalités "optionnelles" ou "agréables à avoir".
Dans la plupart des scénarios, lorsque vous effectuez des commits sur un dépôt de sources, vous écrivez une entrée de journal qui décrit ce qui a changé avec cette mise à jour, afin qu'il soit plus facile pour les autres dans le futur de comprendre pourquoi un changement a été effectué. Il ne s'agit généralement pas d'un changement facultatif - les autres personnes du projet sont tenues de fusionner ou de rebaser sur ce changement. Vous n'écrivez pas une entrée de journal telle que "Cher journal, aujourd'hui je Rencontrez un garçon et il dit bonjour à moi", mais au lieu de cela vous écrivez "je rencontré un garçon et il a déclaré bonjour à moi."
Enfin, pour ces projets non distribués, 99,99% du temps où une personne lira un message de validation est pour lire l'historique - l'historique est lu au passé. 0,01% du temps, elle décidera si oui ou non elle doit appliquer ce commit ou l'intégrer dans sa branche/référentiel.
- Cohérence. C'est ainsi que cela se passe dans de nombreux projets (y compris git lui-même). Les outils git qui génèrent des commits (comme git merge ou git revert) le font aussi.
Non, je vous garantis que la majorité des projets jamais enregistrés dans un système de contrôle de version ont eu leur historique au passé (je n'ai pas de références, mais c'est probablement juste, considérant que l'argument du présent est nouveau depuis Git). Les messages de "révision" ou de "commit" au présent n'ont commencé à avoir du sens que dans les projets réellement distribués - voir le premier point ci-dessus.
- Les gens ne lisent pas seulement l'histoire pour savoir "ce qui est arrivé à cette base de code", mais aussi pour répondre à des questions telles que "que se passe-t-il lorsque je sélectionne ce commit", ou "quelles nouvelles choses vont arriver à ma base de code à cause de ces commits que je peux ou ne peux pas fusionner dans le futur".
Voir le premier point. 99,99% du temps où une personne lira un message de validation, c'est pour lire l'histoire - l'histoire se lit au passé. 0.01% du temps, elle décidera si oui ou non elle doit appliquer ce commit ou l'intégrer dans sa branche/référentiel. 99,99% bat 0,01%.
- C'est généralement plus court
Je n'ai jamais vu d'argument valable pour dire qu'il faut utiliser un temps/une grammaire inappropriés parce que c'est plus court. Vous ne gagnerez probablement que 3 caractères en moyenne pour un message standard de 50 caractères. Ceci étant dit, le présent de l'indicatif sera probablement plus court de quelques caractères en moyenne.
- Vous pouvez nommer les commits de manière plus cohérente avec les titres des tickets dans votre tracker de problèmes et de fonctionnalités (qui n'utilisent pas le passé, bien que parfois le futur).
Les tickets sont rédigés comme quelque chose qui est en train de se produire (par exemple, l'appli montre le mauvais comportement lorsque je clique sur ce bouton), ou quelque chose qui doit être fait à l'avenir (par exemple, le texte aura besoin une critique de l'éditeur).
L'historique (i.e. les messages de commit) est écrit comme quelque chose qui a été fait dans le passé (par exemple le problème était fixe).
0 votes
Question similaire : stackoverflow.com/questions/1753808/
1 votes
Voir aussi exquisitetweets.com/collection/hugovk/1258 english.stackexchange.com/q/6602/9001 programmateurs.stackexchange.com/q/56031/25708 programmateurs.stackexchange.com/q/157590/25708 stackoverflow.com/q/1753808/724176
0 votes
Voir aussi github.com/agis-/git-style-guide
0 votes
Je pense qu'il serait préférable de promouvoir ce site sur programmers.com, mais je n'ai pas cette possibilité.
3 votes
@Eonil si c'est fermé pour être basé sur une opinion ici, ce sera fermé pour être basé sur une opinion là-bas aussi.
0 votes
@Eonil De même, les questions datant de plus de 60 jours ne peuvent pas être migrées (même par les modérateurs).
0 votes
D'après ce que j'ai compris, la préférence officielle pour le présent de l'indicatif est liée au concept d'open-source et au fait que le commit peut potentiellement être retiré par n'importe qui. Pour un consommateur de votre code, la phrase "Appliquez X à votre code" a plus de sens que "Appliqué X à votre code".
1 votes
Je ne suis pas sûr que ce soit nécessairement "basé sur une opinion". Par exemple, si les messages de livraison sont utilisés pour créer des notes de version automatisées, alors il est presque 100% du temps logique de les avoir dans le dernier format (par exemple "xyz fonctionnalité ajoutée"). Si ce n'est pas le cas, cela n'a pas tellement d'importance et c'est une préférence basée sur l'opinion.
0 votes
Cette question n'est probablement pas à sa place, mais elle n'est pas si "fondée sur l'opinion". Je ne pense pas que les gens soient vraiment contre l'utilisation de messages grammaticaux. Et pourquoi pensez-vous que vous devriez utiliser un seul style dans tout le message ? Il n'est pas grammatical de toujours utiliser le même style pour toutes sortes de contextes. Donc, je suppose que la plupart des réponses ici approuvent le style utilisé dans la version résumé ligne du message. Autrement, le présent est susceptible d'être grammatical s'il est utilisé dans le texte pour décrire l'état actuel du code, mais les formes impératives ne le sont pas, sauf s'il existe un environnement interactif.
0 votes
De plus, si les messages se présentent sous la forme d'une série de patchs (éventuellement réorganisés), ils peuvent créer davantage de désordre si l'on prend le sens littéral des formes impératives. L'utilisation de formes impératives est plus ou moins comme des effets secondaires dans les langages de programmation qui ne se comportent assez bien avec certaines contraintes que dans certains contextes locaux (par exemple, utilisés seulement dans une branche saine de l'instance fiable de l'historique de version ici). Ils ne fonctionnent pas en général, globalement.
0 votes
Notez que le passé utilisé dans le résumé peut être traité comme une forme de réponse ellispse avec une question implicite : qu'avez-vous fait lors de votre engagement ? Cela semble plus grammatical pour l'humeur impérative, au moins dans ce contexte. L'impératif peut être acceptable ailleurs. Pour des commandes comme
git
il est naturel d'utiliser l'humeur impérative car l'utilisateur peut s'attendre à la réponse de l'environnement interactif. Ce n'est tout simplement pas le cas dans les messages de validation.0 votes
Comme il s'agit documenté dans
git
c'est no juste fondée sur l'opinion.