2013-04-29 2 views
11

git help commit говорит следующее:Использовать Git от фиксации-сообщ крюка

--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. 

Я хотел бы, чтобы определить, какой режим очистки будет применяться с фиксацией-сбщ hook (правильно, используя commit.cleanupconfig value если необходимо). I run some validations on my commit messages, и я хочу убедиться, что я вижу именно то, что Git планирует использовать.

В качестве альтернативы, я приму способ захватить текст сообщения коммит-сообщения после очистки (возможно, я могу обмануть Git, чтобы очистить его для меня?). Это было бы здорово для моего случая использования, так как тогда мне не пришлось бы беспокоиться о повторной реализации любых режимов очистки.

ответ

9

К сожалению, в текущем источнике (ish) git режим очистки никоим образом не передается на крючок. Аргумент --cleanup сохраняется только в переменной (static, local to builtin/commit.c) переменной cleanup_mode и не экспортируется (например, как аргумент или переменная среды) на различные крючки.

(Он должен быть легким, чтобы добавить переменные среды, содержащие настройки Если вы хотите поэкспериментировать с этим самостоятельно, см builtin/commit.c функции parse_and_validate_options;.. Положить в вызове setenv() с соответствующими аргументами)

Смежные вопросы