Ihr Projekt sollte fast immer verwenden Sie die Vergangenheitsform . Aus Gründen der Kohärenz und Klarheit sollte im Projekt auf jeden Fall immer dieselbe Zeitform verwendet werden.
Ich verstehe einige der anderen Argumente, die für die Verwendung des Präsens sprechen, aber sie in der Regel nicht zutreffen. Die folgenden Aufzählungspunkte sind allgemeine Argumente für das Schreiben im Präsens und meine Antwort darauf.
- Das Schreiben im Präsens sagt jemandem was die Anwendung des Commit bewirken wird und nicht das, was Sie getan haben.
Das ist der beste Grund, warum man das Präsens verwenden sollte, aber nur bei der richtigen Art von Projekt. Diese Denkweise betrachtet alle Commits als optionale Verbesserungen oder Features, und Sie können frei entscheiden, welche Commits Sie in Ihrem speziellen Repository behalten und welche Sie verwerfen wollen.
Dieses Argument funktioniert, wenn Sie es mit einem wirklich verteilten Projekt zu tun haben. Wenn Sie es mit einem verteilten Projekt zu tun haben, arbeiten Sie wahrscheinlich an einem Open-Source-Projekt. Und wenn es wirklich verteilt ist, ist es wahrscheinlich ein sehr großes Projekt. In der Tat ist es wahrscheinlich entweder der Linux-Kernel oder Git. Da Linux wahrscheinlich der Grund dafür ist, dass sich Git verbreitet und an Popularität gewonnen hat, ist es leicht zu verstehen, warum die Leute seinen Stil als Autorität betrachten. Ja, der Stil macht bei diesen beiden Projekten Sinn. Oder, im Allgemeinen, funktioniert er mit groß, quelloffen, verteilt Projekte.
Abgesehen davon funktionieren die meisten Projekte in der Versionskontrolle nicht auf diese Weise. Es ist in der Regel für die meisten Repositories falsch. Es ist eine moderne Art, über einen Commit zu denken: Subversion (SVN) und CVS-Repositorien können diese Art von Repository Check-Ins kaum unterstützen. Normalerweise kümmerte sich ein Integrationszweig um das Filtern von schlechten Check-Ins, aber diese wurden im Allgemeinen nicht als "optional" oder "nice-to-have Features" angesehen.
In den meisten Szenarien, wenn Sie Übertragungen an einem Quellcode-Repository vornehmen, schreiben Sie einen Tagebucheintrag, der beschreibt, was sich mit dieser Aktualisierung geändert hat, um es für andere in der Zukunft einfacher zu machen, zu verstehen, warum eine Änderung vorgenommen wurde. Es handelt sich im Allgemeinen nicht um eine optionale Änderung - andere Leute im Projekt sind verpflichtet, diese entweder zusammenzuführen oder neu zu basen. Sie schreiben keinen Tagebucheintrag wie "Liebes Tagebuch, heute habe ich treffen ein Junge und er sagt Hallo zu mir", aber stattdessen schreibst du "Ich traf ein Junge und er sagte hallo zu mir."
Bei solchen nicht-verteilten Projekten werden 99,99% der Zeit, in der eine Person eine Commit-Nachricht liest, zum Lesen der Historie verwendet - die Historie wird in der Vergangenheitsform gelesen. In 0,01% der Fälle geht es darum, zu entscheiden, ob man diesen Commit anwenden oder in den eigenen Zweig bzw. das eigene Repository integrieren soll oder nicht.
- Konsistenz. So ist es in vielen Projekten (einschließlich Git selbst). Auch Git-Tools, die Commits erzeugen (wie Git Merge oder Git Revert), tun dies.
Nein, ich garantiere Ihnen, dass die meisten Projekte, die jemals in einem Versionskontrollsystem protokolliert wurden, ihre Geschichte in der Vergangenheitsform hatten (ich habe keine Referenzen, aber es ist wahrscheinlich richtig, wenn man bedenkt, dass das Argument der Gegenwartsform seit Git neu ist). "Revisions"-Nachrichten oder Commit-Nachrichten in der Gegenwart machten nur in wirklich verteilten Projekten Sinn - siehe den ersten Punkt oben.
- Die Leute lesen die Historie nicht nur, um zu wissen, "was mit dieser Codebasis passiert ist", sondern auch, um Fragen zu beantworten wie "was passiert, wenn ich diesen Commit herausnehme" oder "was für neue Dinge werden in meiner Codebasis aufgrund dieser Commits passieren, die ich in der Zukunft zusammenführen kann oder nicht".
Siehe den ersten Punkt. In 99,99 % der Fälle, in denen eine Person eine Commit-Nachricht liest, geht es um die Geschichte - Geschichte wird in der Vergangenheitsform gelesen. In 0,01% der Zeit wird er entscheiden, ob er diesen Commit anwenden oder in seinen Zweig bzw. sein Repository integrieren soll oder nicht. 99,99% sind besser als 0,01%.
- Sie ist normalerweise kürzer
Ich habe noch nie ein gutes Argument gesehen, das besagt, dass man eine falsche Zeitform/Grammatik verwenden sollte, weil sie kürzer ist. Bei einer Standardnachricht mit 50 Zeichen sparen Sie wahrscheinlich nur durchschnittlich 3 Zeichen ein. Davon abgesehen ist das Präsens im Durchschnitt wahrscheinlich ein paar Zeichen kürzer.
- Sie können Commits konsistenter mit den Titeln von Tickets in Ihrem Issue/Feature Tracker benennen (die keine Vergangenheitsform verwenden, obwohl sie manchmal in der Zukunft liegen)
Tickets werden entweder als etwas geschrieben, das gerade passiert (z.B. die App zeigt das falsche Verhalten, wenn ich auf diese Schaltfläche klicke), oder etwas, das in Zukunft getan werden muss (z. B. der Text wird benötigt eine Rezension des Herausgebers).
Die Historie (d.h. die Commit-Meldungen) wird als etwas geschrieben, das in der Vergangenheit getan wurde (z.B. das Problem war behoben).
0 Stimmen
Ähnliche Frage: stackoverflow.com/questions/1753808/
1 Stimmen
Siehe auch exquisitetweets.com/kollektion/hugovk/1258 english.stackexchange.com/q/6602/9001 programmers.stackexchange.com/q/56031/25708 programmers.stackexchange.com/q/157590/25708 stackoverflow.com/q/1753808/724176
0 Stimmen
Siehe auch github.com/agis-/git-style-guide
0 Stimmen
Ich denke, es wäre besser, dies auf programmers.com zu bewerben, aber jetzt habe ich keine solchen Möglichkeiten.
3 Stimmen
@Eonil, wenn es hier geschlossen wird, weil es auf Meinungen basiert, wird es auch dort geschlossen, weil es auf Meinungen basiert.
0 Stimmen
@Eonil Außerdem können Fragen, die älter als 60 Tage sind, nicht migriert werden (auch nicht von Moderatoren).
0 Stimmen
Meines Erachtens hat die offizielle Bevorzugung der Gegenwartsform mit dem Konzept der offenen Quelle zu tun und damit, dass der Commit potenziell von jedem gezogen werden kann. Für einen Nutzer Ihres Codes macht der Satz "Apply X to Your Code" mehr Sinn als "Applied X to Your Code".
1 Stimmen
Ich bin mir nicht sicher, ob es sich dabei unbedingt um eine "Meinungsäußerung" handelt. Wenn die Commit-Meldungen zum Beispiel für die Erstellung von automatischen Versionshinweisen verwendet werden, dann ist es in fast 100% der Fälle sinnvoll, sie in dem letztgenannten Format zu haben (z.B. "xyz Funktion hinzugefügt"). Wenn nicht, dann ist es nicht so wichtig und es ist eine meinungsbasierte Präferenz.
0 Stimmen
Diese Frage ist wahrscheinlich nicht an der richtigen Stelle, aber nicht so "meinungsbasiert". Ich glaube nicht, dass die Leute wirklich etwas dagegen haben, grammatikalische Nachrichten zu verwenden. Und warum sollte man Ihrer Meinung nach ein einziger Stil in der gesamten Nachricht? Es ist ungrammatisch, immer den gleichen Stil für alle möglichen Kontexte zu verwenden. Ich gehe also davon aus, dass die meisten Antworten hier den Stil in der Zusammenfassung Zeile der Nachricht. Ansonsten ist das Präsens wahrscheinlich grammatikalisch korrekt, wenn es im Text verwendet wird, um den aktuellen Status des Codes zu beschreiben, aber imperative Formen sind es nicht, es sei denn, es gibt eine interaktive Umgebung.
0 Stimmen
Wenn die Nachrichten in einer Reihe von (möglicherweise neu geordneten) Abschnitten vorliegen, können sie außerdem mehr Durcheinander verursachen, wenn man die wörtliche Bedeutung der imperativen Formen annimmt. Die Verwendung von imperativen Formen ist mehr oder weniger wie Seiteneffekte in Programmiersprachen, die nur mit einigen Einschränkungen in einigen lokalen Kontexten gut genug sind (z.B. nur in einem vernünftigen Zweig einer verlässlichen Instanz der Versionsgeschichte verwendet). Sie funktionieren nicht im Allgemeinen, global.
0 Stimmen
Beachten Sie, dass die in der Zusammenfassung verwendete Vergangenheitsform als eine Form von Antwort-Ellipse mit einer impliziten Frage: Was haben Sie bei Ihrer Übergabe gemacht? Dies scheint grammatikalisch eher dem Imperativ zu entsprechen, zumindest in diesem Kontext. Der Imperativ kann auch anderswo in Ordnung sein. Für Befehle wie
git
Die Verwendung des Imperativs ist naheliegend, da der Benutzer die Reaktion der interaktiven Umgebung erwarten kann. Dies ist bei den Commit-Nachrichten einfach nicht der Fall.0 Stimmen
Da es sich um dokumentiert in
git
ist es no nur meinungsbasiert.0 Stimmen
Ist in West World bei der Zusammenführung von Android-Code "Fähigkeit zum Menschenmord hinzugefügt" besser als "Fähigkeit zum Menschenmord hinzugefügt"? Wenn ich die Zusammenführung anwende, impliziert das erste Zitat, dass die Person, die die Tat begangen hat, schuld ist. Beim zweiten ist es klar, dass ich mordende Androiden haben möchte. Wenn ich sterbe, werde ich mich fragen, warum ich meine Zeit damit verschwendet habe, wie die Kommentare formuliert sind.