Ihr Projekt sollte fast immer die Vergangenheitsform verwenden . In jedem Fall sollte das Projekt aus Gründen der Konsistenz und Klarheit immer dieselbe Zeitform verwenden.
Ich verstehe einige der anderen Argumente, die argumentieren, die Gegenwart zu verwenden, aber sie treffen normalerweise nicht zu. Die folgenden Aufzählungspunkte sind häufige Argumente für das Schreiben in der Gegenwart und meine Antwort.
- Das Schreiben in der Gegenwart sagt jemandem, was das Anwenden des Commits bewirken wird , anstatt was Sie getan haben.
Dies ist der richtigste Grund, warum man die Gegenwart verwenden möchte, aber nur mit dem richtigen Projektstil. Bei dieser Denkweise werden alle Commits als optionale Verbesserungen oder Funktionen betrachtet, und Sie können frei entscheiden, welche Commits in Ihrem speziellen Repository beibehalten und welche abgelehnt werden sollen.
Dieses Argument funktioniert, wenn Sie es mit einem wirklich verteilten Projekt zu tun haben. Wenn Sie mit einem verteilten Projekt arbeiten, arbeiten Sie wahrscheinlich an einem Open Source-Projekt. Und es ist wahrscheinlich ein sehr großes Projekt, wenn es wirklich verteilt ist. In der Tat ist es wahrscheinlich entweder der Linux-Kernel oder Git. Da Linux wahrscheinlich dazu geführt hat, dass sich Git verbreitet und immer beliebter wird, ist es leicht zu verstehen, warum die Leute seinen Stil als Autorität betrachten. Ja, der Stil macht bei diesen beiden Projekten Sinn. Im Allgemeinen funktioniert es auch mit großen, verteilten Open Source- Projekten.
Allerdings funktionieren die meisten Projekte in der Quellcodeverwaltung nicht so. Dies ist normalerweise für die meisten Repositorys falsch. Es ist eine moderne Art, über Commits nachzudenken: Subversion- (SVN) und CVS-Repositorys könnten diese Art von Repository-Check-Ins kaum unterstützen. Normalerweise handhabte ein Integrationszweig das Filtern fehlerhafter Check-Ins, aber diese wurden im Allgemeinen nicht als "optional" oder "schön zu haben" angesehen.
In den meisten Szenarien schreiben Sie beim Festschreiben eines Quell-Repositorys einen Journaleintrag, in dem beschrieben wird, was sich mit diesem Update geändert hat, damit andere in Zukunft leichter verstehen können, warum eine Änderung vorgenommen wurde. Dies ist im Allgemeinen keine optionale Änderung. Andere Personen im Projekt müssen sie entweder zusammenführen oder neu erstellen. Sie schreiben keinen Tagebucheintrag wie "Liebes Tagebuch, heute treffe ich einen Jungen und er sagt Hallo zu mir.", Sondern Sie schreiben "Ich habe einen Jungen getroffen und er hat Hallo zu mir gesagt ."
Bei solchen nicht verteilten Projekten ist 99,99% der Zeit, in der eine Person eine Commit-Nachricht liest, für das Lesen des Verlaufs bestimmt - der Verlauf wird in der Vergangenheitsform gelesen. In 0,01% der Fälle wird entschieden, ob sie dieses Commit anwenden oder in ihre Zweigstelle / ihr Repository integrieren sollen.
- Konsistenz. So ist es in vielen Projekten (einschließlich Git selbst). Auch Git-Tools, die Commits generieren (wie Git Merge oder Git Revert), tun dies.
Nein, ich garantiere Ihnen, dass die meisten Projekte, die jemals in einem Versionskontrollsystem angemeldet waren, ihren Verlauf 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 haben erst in wirklich verteilten Projekten Sinn gemacht - siehe den ersten Punkt oben.
- Die Leute lesen nicht nur die Geschichte, um zu wissen, "was mit dieser Codebasis passiert ist", sondern auch um Fragen zu beantworten, wie "was passiert, wenn ich dieses Commit auswähle" oder "welche neuen Dinge aufgrund dieser Commits mit meiner Codebasis passieren werden." Ich kann oder kann nicht in der Zukunft verschmelzen ".
Siehe den ersten Punkt. 99,99% der Zeit, in der eine Person eine Commit-Nachricht liest, dient zum Lesen des Verlaufs - der Verlauf wird in der Vergangenheitsform gelesen. In 0,01% der Fälle wird entschieden, ob sie dieses Commit anwenden oder in ihre Zweigstelle / ihr Repository integrieren sollen. 99,99% schlagen 0,01%.
- Es ist normalerweise kürzer
Ich habe noch nie ein gutes Argument gesehen, das besagt, dass man falsche Zeitform / Grammatik verwendet, weil es kürzer ist. Sie werden wahrscheinlich nur durchschnittlich 3 Zeichen für eine Standardnachricht mit 50 Zeichen speichern. Davon abgesehen wird die Gegenwart im Durchschnitt wahrscheinlich einige Zeichen kürzer sein.
- Sie können Commits konsistenter mit Titeln von Tickets in Ihrem Issue- / Feature-Tracker benennen (die keine Vergangenheitsform verwenden, obwohl manchmal auch zukünftige)
Tickets werden entweder als etwas geschrieben , das derzeit geschieht (zB die App zeigt das falsche Verhalten , wenn ich auf diese Schaltfläche klicken), oder etwas , dass der Bedarf in der Zukunft durchgeführt werden (zB der Text muss eine Überprüfung durch die Redaktion).
Geschichte (dh Commit - Nachrichten) als etwas geschrieben , das in der Vergangenheit getan wurde (zB das Problem wurde festgelegt).