Ваш проект майже завжди повинен використовувати минулий час . У будь-якому випадку проект завжди повинен використовувати однаковий час для послідовності та чіткості.
Я розумію деякі інші аргументи, що аргументують використання теперішнього часу, але вони зазвичай не застосовуються. Наступні пункти - це загальні аргументи для написання в теперішньому часі, і моя відповідь.
- Написання в теперішньому часі говорить комусь, що застосовуватиме зобов’язання , а не те, що ви зробили.
Це найправильніша причина, з якої б хотілося використовувати теперішній час, але тільки з правильним стилем проекту. Такий спосіб мислення розглядає всі комісії як необов'язкові вдосконалення чи функції, і ви можете вирішити, які зобов’язання зберігати та які потрібно відхилити у вашому конкретному сховищі.
Цей аргумент працює, якщо ви маєте справу з дійсно розподіленим проектом. Якщо ви маєте справу з розподіленим проектом, ви, ймовірно, працюєте над проектом з відкритим кодом. І це, мабуть, дуже великий проект, якщо він дійсно розподілений. Насправді це, мабуть, або ядро Linux, або Git. Оскільки Linux, ймовірно, спричинив поширення та набуття популярності Git, легко зрозуміти, чому люди вважають його стиль авторитетом. Так, стиль має сенс у цих двох проектах. Або взагалі це працює з великими, відкритими, розповсюдженими проектами.
При цьому, більшість проектів з контролю джерел працюють не так. Зазвичай це неправильно для більшості сховищ. Це сучасний спосіб мислення про коміти: Subversion (SVN) та сховища CVS ледь можуть підтримувати цей стиль реєстрації репозиторіїв. Зазвичай гілка інтеграції обробляє фільтрування поганих реєстрацій, але вони, як правило, не вважаються "необов'язковими" або "приємними для функцій".
У більшості сценаріїв, коли ви здійснюєте зобов’язання у сховище джерел, ви пишете запис у журналі, в якому описується, що змінилося з цим оновленням, щоб в майбутньому іншим було легше зрозуміти, чому було внесено зміни. Як правило, це не є необов'язковою зміною - інші люди в проекті зобов'язані або об'єднати, або відновити його. Ви не пишете запис в щоденнику , такі як «Дорогий щоденник, сьогодні я зустрітися з хлопчиком , і він каже мені привіт.», Але замість того, щоб писати «Я зустрів хлопчика , і він сказав мені привіт.»
Нарешті, для таких нерозподілених проектів 99,99% часу, коли людина буде читати повідомлення про фіксацію, припадає на читання історії - історія читається в минулому часі. 0,01% часу буде вирішувати, застосовувати чи ні цей зобов’язання чи інтегрувати його у своє відділення / сховище.
- Послідовність. Ось так це є у багатьох проектах (включаючи сам git). Також це роблять інструменти git, які генерують коміти (наприклад, git merge or git revert).
Ні, я гарантую вам, що більшість проектів, що коли-небудь входили в систему контролю версій, мали свою історію в минулому часі (я не маю посилань, але це, мабуть, правильно, враховуючи, що теперішній час аргумент новий після Git). Повідомлення "Перегляд" або передача повідомлень у теперішньому часі лише почали мати сенс у справді розподілених проектах - див. Перший пункт вище.
- Люди не лише читають історію, щоб знати, "що сталося з цією базою кодів", а й відповідати на запитання на кшталт "що трапиться, коли я вишу цей виборчий комітет", або "які нові речі відбудуться з моєю базою кодів через ці зобов'язання Я можу або не можу злитися в майбутньому ".
Дивіться перший пункт. 99,99% часу, коли людина буде читати повідомлення про вчинення, - це читання історії - історія читається в минулому часі. 0,01% часу буде вирішувати, застосовувати чи ні цей зобов’язання чи інтегрувати його у своє відділення / сховище. 99,99% б'є 0,01%.
Я ніколи не бачив хорошого аргументу, який говорить про використання неправильного часу / граматики, оскільки це коротше. Напевно ви збережете лише 3 символи в середньому для стандартного повідомлення з 50 символів. Як сказано, теперішня напруга в середньому, ймовірно, буде на кілька символів коротше.
- Ви можете назвати зобов’язання більш послідовно з назвами квитків у вашому трекері випуску / функції (які не використовують минулий час, хоча іноді і майбутній)
Квитки записуються як щось, що зараз відбувається (наприклад, програма показує неправильну поведінку, коли я натискаю цю кнопку), або як те, що потрібно зробити в майбутньому (наприклад, текст потребує перегляду редактором).
Історія (тобто повідомлення про фіксацію) записується як щось, що було зроблено в минулому (наприклад, проблема була виправлена).