# [PATCH] commit-tree: don't append a newline with -F

5 messages from 2017-09-07 to 2017-09-14. Participants: Ross Kabus, Junio C Hamano.
Thread: https://gitlist.dev/t/46720

## Ross Kabus, 2017-09-07 14:41

Subject: [PATCH] commit-tree: don't append a newline with -F
Message-ID: <20170907144111.7488-1-rkabus@aerotech.com>
URL: https://gitlist.dev/e/20170907144111.7488-1-rkabus%40aerotech.com

```
This change makes it such that commit-tree -F never appends a newline
character to the supplied commit message (either from file or stdin).

Previously, commit-tree -F would always append a newline character to
the text brought in from file or stdin. This has caused confusion in a
number of ways:
  - This is a plumbing command and it is generally expected not to do
    text cleanup or other niceties.
  - stdin piping with "-F -" appends a newline but stdin piping without
    -F does not append a newline (inconsistent).
  - git-commit does not specifically append a newline to the "-F"
    input. The issue is somewhat muddled by the fact that git-commit
    does pass the message through its --cleanup option, which may add
    such a newline. But for commit-tree to match "commit --cleanup=verbatim",
    we should not do so here.

Signed-off-by: Ross Kabus <rkabus@aerotech.com>
---
 builtin/commit-tree.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
index 19e898fa4..2177251e2 100644
--- a/builtin/commit-tree.c
+++ b/builtin/commit-tree.c
@@ -102,7 +102,6 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
 			if (fd && close(fd))
 				die_errno("git commit-tree: failed to close '%s'",
 					  argv[i]);
-			strbuf_complete_line(&buffer);
 			continue;
 		}
 
-- 
2.13.1.windows.2


```

## Junio C Hamano, 2017-09-08 01:35

Subject: Re: [PATCH] commit-tree: don't append a newline with -F
Message-ID: <xmqqa8260y7g.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqa8260y7g.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <20170907144111.7488-1-rkabus@aerotech.com>

```
Ross Kabus <rkabus@aerotech.com> writes:

> This change makes it such that commit-tree -F never appends a newline
> character to the supplied commit message (either from file or stdin).
>
> Previously, commit-tree -F would always append a newline character to
> the text brought in from file or stdin.

This is not correct.  The command adds a missing newline only when
the input ended in an incompete line.

I'd rephrase the whole thing like this:

    commit-tree: do not complete line in -F input

    "git commit-tree -F <file>", unlike "cat <file> | git
    commit-tree" (i.e. feeding the same contents from the standard
    input), added a missing final newline when the input ended in an
    incomplete line.

    Correct this inconsistency by leaving the incomplete line as-is,
    as erring on the side of not touching the input is preferrable
    and expected for a plumbing command like "commit-tree".

if I were doing this patch.

Thanks.

> Signed-off-by: Ross Kabus <rkabus@aerotech.com>
> ---
>  builtin/commit-tree.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
> index 19e898fa4..2177251e2 100644
> --- a/builtin/commit-tree.c
> +++ b/builtin/commit-tree.c
> @@ -102,7 +102,6 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
>  			if (fd && close(fd))
>  				die_errno("git commit-tree: failed to close '%s'",
>  					  argv[i]);
> -			strbuf_complete_line(&buffer);
>  			continue;
>  		}

```

## Ross Kabus, 2017-09-08 22:06

Subject: Re: [PATCH] commit-tree: don't append a newline with -F
Message-ID: <CAEVs+zYrKxX0S9LMoBLB3vqG5n3PuMGMCehipbpCmFA7dW95qw@mail.gmail.com>
URL: https://gitlist.dev/e/CAEVs%2BzYrKxX0S9LMoBLB3vqG5n3PuMGMCehipbpCmFA7dW95qw%40mail.gmail.com
In-Reply-To: <xmqqa8260y7g.fsf@gitster.mtv.corp.google.com>

```
On Thu, Sep 7, 2017 at 9:35 PM, Junio C Hamano <gitster@pobox.com> wrote:
>     commit-tree: do not complete line in -F input
>
>     "git commit-tree -F <file>", unlike "cat <file> | git
>     commit-tree" (i.e. feeding the same contents from the standard
>     input), added a missing final newline when the input ended in an
>     incomplete line.
>
>     Correct this inconsistency by leaving the incomplete line as-is,
>     as erring on the side of not touching the input is preferrable
>     and expected for a plumbing command like "commit-tree".

That all makes sense to me and is clearer too, I like this change.
Do I need to resubmit the patch or will you just use that text instead?

```

## Junio C Hamano, 2017-09-09 03:22

Subject: Re: [PATCH] commit-tree: don't append a newline with -F
Message-ID: <xmqqmv64y2sf.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqmv64y2sf.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <CAEVs+zYrKxX0S9LMoBLB3vqG5n3PuMGMCehipbpCmFA7dW95qw@mail.gmail.com>

```
Ross Kabus <rkabus@aerotech.com> writes:

> On Thu, Sep 7, 2017 at 9:35 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>     commit-tree: do not complete line in -F input
>>
>>     "git commit-tree -F <file>", unlike "cat <file> | git
>>     commit-tree" (i.e. feeding the same contents from the standard
>>     input), added a missing final newline when the input ended in an
>>     incomplete line.
>>
>>     Correct this inconsistency by leaving the incomplete line as-is,
>>     as erring on the side of not touching the input is preferrable
>>     and expected for a plumbing command like "commit-tree".
>
> That all makes sense to me and is clearer too, I like this change.
> Do I need to resubmit the patch or will you just use that text instead?

Unless the change is in the middle of a large series or require more
involved edit [*1*], it is perfectly fine to tell me the maintainer
to do these small menial changes on behalf of you---you explicitly
need to tell me what you want to happen, though.

Thanks.

[Footnote]

*1* ... in which case we have a larger chance of the maintainer
    screwing up while attempting to do so, and I'd prefer to see an
    updated version posted on the list.  That way, we can benefit
    from extra set of eyeballs watching our exchange from the
    sideline.


```

## Ross Kabus, 2017-09-14 17:05

Subject: [PATCH v2] commit-tree: do not complete line in -F input
Message-ID: <20170914170521.8076-1-rkabus@aerotech.com>
URL: https://gitlist.dev/e/20170914170521.8076-1-rkabus%40aerotech.com
In-Reply-To: <xmqqa8260y7g.fsf@gitster.mtv.corp.google.com>

```
"git commit-tree -F <file>", unlike "cat <file> | git
commit-tree" (i.e. feeding the same contents from the standard
input), added a missing final newline when the input ended in an
incomplete line.

Correct this inconsistency by leaving the incomplete line as-is,
as erring on the side of not touching the input is preferable
and expected for a plumbing command like "commit-tree".

Signed-off-by: Ross Kabus <rkabus@aerotech.com>
---
Fixed up commit message with feedback from Junio.

 builtin/commit-tree.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
index 19e898fa4..2177251e2 100644
--- a/builtin/commit-tree.c
+++ b/builtin/commit-tree.c
@@ -102,7 +102,6 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
 			if (fd && close(fd))
 				die_errno("git commit-tree: failed to close '%s'",
 					  argv[i]);
-			strbuf_complete_line(&buffer);
 			continue;
 		}
 
-- 
2.13.1.windows.2


```
