progit2-ru icon indicating copy to clipboard operation
progit2-ru copied to clipboard

Повелительное наклонение

Open srgizh opened this issue 4 years ago • 4 comments

В оригинальных руководствах рекомендуют в сообщениях коммитов использовать повелительное наклонение (Императив). Как это применимо к русскому, и что вообще имеется в виду?

Если комментировать коммиты на английском языке то смотрится логично. Получаются короткие и понятные сообщения. К тому же императив по форме там совпадает с инфинитивом. «Fix bug» а не «Fixed bug» или «Fixes bug»

А как по-русски? Вместо «исправлен» или «исправляет» нужно писать «исправь, исправьте» или вообще в инфинитиве — «исправить»?

Повелительное наклонение выглядит нелогично и никто похоже так не пишет. В русских репозиториях обычно используется прошедшее время. Сообщения коммитов отвечают на вопрос «Что сделано?»

А как писать правильно?

srgizh avatar Feb 15 '21 21:02 srgizh

Продолжаем разбираться.

Инфинитив может выражать любое наклонение, в том числе повелительное. https://goldrussian.ru/infinitiv-vroli-naklonenij.html

Инфинитив в значении повелительного наклонения подчеркивает категоричность требования, поэтому он используется в командах разного рода, например: Поднять паруса!

В интерфейсе английских программ тоже везде используется императив: Save, Open, Close, но по-русски: Открыть, Сохранить, Закрыть, т. е. переводятся на русский язык неопределенной формой глагола совершенного вида повелительного наклонения. Там где в английском императив (DO NOT CROSS THE LINE), в русском — инфинитив (ЗА ЛИНИЮ НЕ ЗАСТУПАТЬ)

Поэтому текст Write your commit message in the imperative стоит понимать как Пишите сообщения коммитов используя повелительное наклонение, выраженное неопределенной формой глагола

В ГОСТ 2.601 (ЕСКД) сказано буквально следующее: 6.1. В тексте документа при изложении указаний о проведении работ применяют глаголы в повелительном наклонении, например, «Открыть люк...», «Нажать кнопку...» и т.п.

srgizh avatar Mar 08 '21 03:03 srgizh

Отличное исследование! Однако следует понимать, что сообщения коммитов не являются инструкцией.

Исходя из практического опыта могу сделать заключение, что сообщения коммитов в подавляющием большинстве случаев используются для:

  1. Ревью кода, чтобы понимать о чем дальше пойдёт речь.
  2. Генерации списка изменений, включённых в релиз.
  3. Просмотра истории.

Поэтому, моё мнение в отношении сообщений коммитов состоит в том, что каждое сообщение должно содержать краткое описание проделанной работы. Поэтому, следует использовать глаголы совершенного вида в прошедшем времени. Например:

  • Исправлена ошибка подключения к серверу
  • Проведён рефакторинг класса "MyClass"
  • Добавлено автоматическое закрытие люка после открытия :)

В ГОСТ 2.601 (ЕСКД) сказано буквально следующее: 6.1. В тексте документа при изложении указаний о проведении работ применяют глаголы в повелительном наклонении, например, «Открыть люк...», «Нажать кнопку...» и т.п.

Приведённые требования больше подходят не для проделанной работы, а для поставновки задачи на нё выполнение. Как правило, именно так и формулируются задачи в системах отслеживания задач. Например:

  • Исправить ошибку подключения к серверу
  • Провести рефакторинг класса "MyClass"
  • Добавить автоматическое закрытие люка после открытия :)

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

Morganov avatar Apr 04 '21 09:04 Morganov

Я для себя пока вижу, что русский инфинитив лучше подходит. Ведь сообщения коммитов это не констатация факта проделанной работы (рецензент может заставить всё переделать), а либо постановка задачи (тут хорошо вписываются названия тикетов), либо намерение/предложение (как например в данном проекте по переводу книги)

  • Ревью кода, чтобы понимать о чем дальше пойдёт речь.
  • Генерации списка изменений, включённых в релиз.
  • Просмотра истории.

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

Closed issues: ... Merged pull requests:

  • Исправить ошибку ...
  • Удалить ...
  • Добавить ...

srgizh avatar Apr 04 '21 10:04 srgizh