Следует ли писать сообщения коммитов в настоящем или прошедшем времени? [закрыто]

102

Итак, что, по вашему мнению, лучше и интуитивно понятнее?

Fixed the XXX bug in YYY
Fix the XXX bug in YYY
Fixes the XXX bug in YYY
Fixing the XXX bug in YYY

Пожалуйста, дайте свои объяснения. Обратите внимание: я спрашиваю с вашей общей точки зрения, то есть вы не должны пытаться связать это с вашими предпочтительными инструментами svn / cvs или языками программирования, а скорее думайте об этом как о чем-то, что должно / может быть применено к любым инструментам и языкам программирования.

ее
источник
Кто-то на вашей работе слишком педантичен, надеюсь, это не вы. Кто бы это ни был, он должен рассматривать настоящее как совершенное против настоящего несовершенного и решать философскую загадку, читается ли комментарий фиксации так, как если бы он был типизирован, или когда он сам сохранялся в репозитории. В последнем случае используйте подарок, идеально подходящий для завершенного действия. Если первое, используйте несовершенное для незавершенной деятельности в настоящем.
Heath Hunnicutt
1
Не обман в этом вопросе. Это вопрос об одном небольшом аспекте, а не общих рекомендациях.
3
К счастью, это не так. Я спрашивал, пытался выяснить, хотел бы знать, какова там общая практика. Если я должен сказать вам правду, это на самом деле самый незначительный вопрос, который я когда-либо задавал на SO, но эй, это все еще вопрос, не так ли? Сам вопрос получил три голоса, что (если не очевидно для вас) говорит о том, что я не единственный, кто думает, что этот вопрос действителен сам по себе. Я стремлюсь к конструктивным ответам, а вы мне совершенно не помогаете.
Его
1
Если вы думали, что люди не должны слишком беспокоиться о временах в сообщениях коммитов, хорошо скажите это, укажите свои причины и свои предпочтения. Намного полезнее и полезнее, чем ваш саркастический комментарий выше.
Его
10
Я очень серьезно отношусь к этому вопросу. Это отличный вопрос. При разработке программного обеспечения очень важно быть последовательным, и это должно быть интересно всем посетителям, интересующимся тематикой этого веб-сайта. Это мое мнение.
Niklas Berglund

Ответы:

39

Я думаю об этих сообщениях такими, какими они кажутся другим разработчикам. К ним еще не применены изменения, и возникает неявный вопрос: «Что будет делать этот набор изменений / патч?» Он «исправит ошибку XXX в YYY»!

Для других глаголов запись их в виде команды кажется более естественной и работает лучше, если у вас есть конкретная цель заранее - вы можете буквально написать сводку фиксации вместе с предварительными тестами, прежде чем работа будет выполнена.

Я не придаю этому большого веса, но для меня это путь наименьшего сопротивления при сохранении последовательности.

Roger Pate
источник
8
Я помню, как наткнулся на что-то в документации по git, в которой настоятельно рекомендовалось это время, но мне все еще неловко.
keithjgrant
1
Это часть документации Git.
sschuberth
31

Я лично использую прошедшее время («фиксированное»), так как к тому времени, когда я доберусь до фиксации, ошибка будет исправлена ​​(или я не буду совершать фиксацию).

Cletus
источник
Вы можете привести пример этого?
bzlm
15
пример этого.
Преподобный Гонзо
Это называется «История фиксации». История всегда пишется в прошедшем времени. Так что прошедшее время имеет больше смысла. Когда вы также просматриваете историю фиксации некоторого репо, вы смотрите на то, что с ним было сделано ... в прошлом!
Шива
13

Я предпочитаю видеть сообщения коммитов в настоящем времени. Таким образом, сообщение описывает, что делает diff (потому что вы можете перетащить этот diff или даже весь коммит в другую ветку). Таким образом, сообщение коммита не описывает, что он «сделал» ... Оно описывает, что делает сам коммит. Так что это должно быть в настоящем времени.

Представьте, что вы смотрите на различие изолированно и пытаетесь решить, будете ли вы его применять. Не имеет смысла иметь название в прошедшем времени.

TedPavlic
источник
1
«что делает различия» , но разница создаются коммит , который совершил , это в истории уже мерзавца, так он уже был «применен».
Юлиан Онофрей
9

ИМХО, если вы хотите, чтобы он был описательным, без необходимости учитывать контекст, то «Фиксированный» определенно единственный правильный вариант.

Что касается интуитивности - если я посмотрю на какой-то журнал изменений, я определенно пойму, что вы имеете в виду исправленную ошибку, поскольку я знаю контекст, в котором используется это слово, но мой мозг уловит это намного быстрее, если слово будет написано на этом языке. указание пути.

«Исправление» - наихудший выбор ИМХО, так как его можно интерпретировать не только как описание того, что делает патч (для чего), но также как статус ошибки, что означает, что над ней работают и еще не решены.

Иван
источник
7
Fix the XXX bug in YYY
Teach the XXX to be more ZZZ
Correct typos in javadoc

В общем: {повелительный глагол} {затронутый объект} {необязательные квалификаторы}

Императивная форма подходит для всех случаев использования, когда я рассматриваю набор исправлений.

  • Что ты собираешься здесь делать?
  • Что делает этот патчсет?
  • Почему был создан этот патчсет? (чтобы исправить ошибку xxx ...)
  • Мне нужно исправить ошибку xxx в yyy. Есть ли коммит в другой ветке, который это уже делает?

Независимо от вашего выбора, я считаю, что согласованность очень помогает читаемости. Выберите один и придерживайтесь его.

оборота форд
источник
4
Очень веские причины. Я всегда считаю, что в сообщении говорится: «Я патч, и я [сообщение]». Таким образом, вы всегда начинаете с повелительного наклонения.
florisla
5

Я думаю, что писать о текущем коммите в настоящем времени - хорошая идея, потому что это делает его более ясным, когда вы ссылаетесь на предыдущие коммиты в прошедшем времени.

Кен Блум
источник
1
Я согласен. Если фиксация ссылается на себя, это также верно, как в «Эта фиксация исправляет ошибку F00F».
bzlm
4

Я не думаю, что это действительно важно. Целью является:

1) Сообщайте о том, что делается или делается, чтобы было легче находить ошибки, легче устранять проблемы и, как правило, было легче поддерживать проект.

2) Сообщите, какие заявки были исправлены, если таковые имеются, чтобы аудиторы (если они используются в вашей компании, могли видеть, какие изменения соответствуют каким заявкам).

Наконец, если это уже было исправлено, «Исправление» не имеет смысла, а если вы все еще работаете над этим, «Исправлено» неверно.

Преподобный Гонзо
источник
1
Конечно, строго говоря, это действительно не имеет значения. Но если вам нужно выбрать один, когда вы исправили ошибку в своем локальном дереве и хотите зафиксировать сделанные изменения, вы говорите «Исправлено XXX», «Исправляет XXX» или «Исправить XXX»?
Его
1
Думаю, важно, если текст будет слишком кратким. Иногда я вижу сообщения фиксации, которые заставляют меня задуматься, 1. была ли ошибка обнаружена или фактически исправлена, или 2. было ли исправление принято или фактически применено, или 3. было ли частично или полностью исправлено сложное ошибочное поведение. Иногда несколько коммитов связаны с одной и той же ошибкой. В «Эта фиксация исправляет проблему подпрыгивания в DrawBall () и закрывает билет 666» время не имеет значения, потому что текст многословен. Но что делает фиксация для «DrawBall () отскакивает неправильно»?
bzlm
2

« Исправить ошибку X » на 2 символа короче, чем « Исправленная ошибка X ».
И на 3 короче, чем « Исправление ошибки X ».

С точки зрения написания коротких коммит-сообщений настоящее время иногда / обычно сохраняет несколько символов?
Что, на самом деле, имеет значение немного, например, с рекомендацией Git меньше 50 символов в строке сообщения первой фиксации.
Кроме того, меньше текста -> быстрее читаете?

КайМагнус
источник
1

Сообщение о фиксации описывает, почему вы написали код, который фиксируется.

«Исправленная проблема 3124» или «Исправляет проблему 3124» кажется правильным, потому что в нем говорится, что этот код исправлен | исправляет проблему 3124.

Однако грамматика также может зависеть от того, почему ошибка помечена как исправленная. Если вы можете пометить ошибку как исправленную после фиксации, тогда «Исправлено» вполне достаточно, но если ошибка будет отмечена как исправленная кем-то еще после проверки вашего кода, то «Исправления» могут быть более подходящими.

Parag
источник
0

Я думаю, что наиболее важный ответ на такой вопрос: каждый должен использовать то, что работает для конкретного проекта, и поддерживать его хотя бы немного последовательным.

Хотя я вижу преимущества использования настоящего времени (и фактически наткнулся на этот пост, потому что видел некоторые сообщения настоящего времени в проектах с открытым исходным кодом), я, вероятно, никогда не буду использовать настоящее время в своих проектах. Это рекомендуемый способ для Linux и Git и, возможно, других более крупных проектов с открытым исходным кодом, но мне, честно говоря, все равно, если я не участвую в этих проектах.

Я инди-разработчик и использую первую строку сообщения о фиксации для примечаний к выпуску, а описание в следующих строках дает мне представление о деталях реализации. Это ориентированный на пользователя рабочий процесс по сравнению с нынешним временным подходом, ориентированным на разработчиков. Так я сэкономлю время. Было бы крайне неестественно давать моим пользователям инструкции в примечаниях к выпуску. Моя работа - исправлять ошибки и добавлять функции. Мне нужно экономить время, потому что я инди. В моей команде нет «писателя примечаний к выпуску».

Используйте правила проекта, если они уже установлены, но оставайтесь прагматичными и делайте все, что облегчит или ускорит вашу работу.

Рафаэль Бугаевский
источник
-1

Я думаю, это "Fixes XXX bug"имеет больше смысла, чем "Fix XXX bug"если бы причина использования настоящего времени была в том, чтобы «сделать его более описательным для того, что делает коммит», а не для того, что сделал коммиттер.

технофил
источник
-4

Если это небольшая фиксация, я использую Present Continuous:

Исправление ошибки 304

или

Добавление комментариев

Если это большая фиксация, я делаю больше журнала изменений:

  • Исправляет ошибку 453, 657 и 324.
  • Добавление синтаксиса выражения
  • Реорганизован класс Operator.
tster
источник
9
другими словами, вы их всех смешиваете волей-неволей. B-)
Брайан Постоу
Довольно много. Потому что, в конце концов, сообщения о фиксации не обязательно должны быть на королевском английском.
tster
2
В любом случае вы не должны делать много разных вещей в одном коммите.
florisla