Использовать Git режим очистки сообщения фиксации с помощью фиксации-msg
git help commit
говорит следующее:
--cleanup=<mode>
This option determines how the supplied commit message should be
cleaned up before committing. The <mode> can be strip, whitespace,
verbatim, or default.
strip
Strip leading and trailing empty lines, trailing whitespace,
and #commentary and collapse consecutive empty lines.
whitespace
Same as strip except #commentary is not removed.
verbatim
Do not change the message at all.
default
Same as strip if the message is to be edited. Otherwise
whitespace.
Я хотел бы определить, какой режим очистки будет применяться из commit-msg hook (правильно используя commit.cleanup
значение конфигурации при необходимости). Я выполняю некоторые проверки в своих сообщениях о фиксации, и я хочу убедиться, что я вижу, что именно планирует использовать Git.
В качестве альтернативы, я приму способ захватить текст сообщения коммит-сообщения после очистки (возможно, я могу обмануть Git, чтобы очистить его для меня?). Это было бы здорово для моего варианта использования, так как тогда мне не пришлось бы беспокоиться о повторной реализации любых режимов очистки.
Ответы
Ответ 1
К сожалению, в текущем (ish) git источнике, режим очистки не передается на крючок каким-либо образом. Аргумент --cleanup
сохраняется только в переменной <static
, local to builtin/commit.c
) cleanup_mode
и не экспортируется (например, как аргумент или переменная среды) на различные крючки.
(Это должно быть легко добавить переменную среды, содержащую этот параметр. Если вы хотите поэкспериментировать с этим самостоятельно, см. builtin/commit.c
function parse_and_validate_options
; поместите вызов setenv()
с соответствующими аргументами.)