On 03/07/19 20:08, Markus Armbruster wrote:
> Eric Blake <ebl...@redhat.com> writes:
> 
>> On 3/7/19 11:23 AM, Markus Armbruster wrote:
>>> Signed-off-by: Markus Armbruster <arm...@redhat.com>
>>>
>>> # Conflicts:
>>> #   vl.c
>>
>> How'd you get git to preserve the leading #? Generally, I find conflicts
>> details useful for cherry-picked backports, but pointless for rebased
>> patches intended as original upstream material. And git defaults to
>> stripping lines with leading # when composing a commit message.
> 
> I've messed up too many commit message by having fill-paragraph flow a #
> to the beginning of a line, so I added
> 
>     [commit]
>             cleanup = scissors

I'm going to steal this now. :)

> 
> to my .gitconfig.  I've been messing up commit messages with leftover
> crap ever since, but leftover crap has proven less confusing to my
> reviewers than missing lines.
> 
>>                                                                 May be
>> worth cleaning up before the actual pull request.
> 
> Certainly.
> 
> 
> git-commit(1):
> 
>        --cleanup=<mode>
>            This option determines how the supplied commit message should be
>            cleaned up before committing. The <mode> can be strip, whitespace,
>            verbatim, scissors or default.
> 
>            strip
>                Strip leading and trailing empty lines, trailing whitespace,
>                commentary and collapse consecutive empty lines.
> 
>            whitespace
>                Same as strip except #commentary is not removed.
> 
>            verbatim
>                Do not change the message at all.
> 
>            scissors
>                Same as whitespace except that everything from (and including)
>                the line found below is truncated, if the message is to be
>                edited. "#" can be customized with core.commentChar.
> 
>                    # ------------------------ >8 ------------------------
> 
>            default
>                Same as strip if the message is to be edited. Otherwise
>                whitespace.
> 
>            The default can be changed by the commit.cleanup configuration
>            variable (see git-config(1)).
> 

Yeah I can tell this documentation was written by a programmer. The
documentation most likely follows the implementation closely (nested
"if"s?), with the "double except". Just try to expand the definition of
"scissors" without a mental stack overflow:

    Same as strip except #commentary is not removed except that
    everything from (and including) the line found below is truncated

Geez.

Anyway, thank you again for the tip!
Laszlo

Reply via email to