Re: [Bug] commit-tree shouldn't append an extra newline to commit messages
- Date: Tue, 5 Sep 2017 12:57:21 -0400
- From: Ross Kabus <rkabus@xxxxxxxxxxxx>
- Subject: Re: [Bug] commit-tree shouldn't append an extra newline to commit messages
On Tue, Sep 5, 2017 at 11:36 AM, Jeff King <peff@xxxxxxxx> wrote:
> So I'd argue that "git commit -F" is doing a reasonable
> thing, and "commit-tree -F" should probably change to match it (because
> it's inconsistent, and because if anything the plumbing commit-tree
> should err more on the side of not touching its input than the porcelain
> commit command).
I would agree that "commit-tree -F" should change to match the behavior of
"git commit -F --cleanup=verbatim". I feel pretty strongly that this type of
cleanup logic shouldn't be done in a plumbing command, though I'm not sure
it is a big enough deal to change behavior/compatibility for everyone.
> $ tree=$(git write-tree)
> $ commit=$(printf end | git commit-tree $tree)
> $ git cat-file commit $commit | xxd
> 00000090: 3034 3030 0a0a 656e 64 0400..end
Yup, confusion #2. I was using "-F -" which I see now is a different code
path. Reading via stdin without "-F -" _is_ the verbatim option. This
difference burned someone else on the mailing list as well. See:
Probably more reason that "-F" should be 'verbatim' by default.