Pytanie Użyj trybu czyszczenia wiadomości zatwierdzania Git z haka commit-msg


git help commit mówi:

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

Chciałbym określić, który tryb czyszczenia zostanie zastosowany z commit-msg hak (poprawnie używając commit.cleanup  wartość konfiguracyjna kiedy konieczne). Uruchamiam niektóre sprawdzania poprawności moich wiadomości zatwierdzania i chcę się upewnić, że dokładnie widzę, czego Git zamierza użyć.

Alternatywnie, przyjmuję sposób na pobranie tekstu po oczyszczeniu wiadomości (może uda mi się oszukać Gita w czyszczeniu go dla mnie?). Byłoby świetnie dla mojego przypadku użycia, ponieważ wtedy nie musiałbym martwić się o ponowne wdrożenie żadnych trybów czyszczenia.


11
2018-04-29 06:56


pochodzenie




Odpowiedzi:


Niestety, w bieżącym (ish) źródle git, tryb czyszczenia nie jest w żaden sposób przekazywany do haka. Argument do --cleanup jest przechowywany tylko w (static, lokalne dla builtin/commit.c) zmienna cleanup_mode i nie są eksportowane (na przykład jako argument lub zmienna środowiskowa) do różnych haków.

(Powinno być łatwo dodać zmienną środowiskową zawierającą ustawienie. Jeśli chcesz eksperymentować z tym samemu, zobacz builtin/commit.c funkcjonować parse_and_validate_options; zadzwonić do setenv() z odpowiednimi argumentami.)


9
2018-05-05 20:18