threads / patch / 46720

patchcommit-tree: don't append a newline with -F

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

## tl;dr

5 messages between Sep 7, 2017 and Sep 14, 2017. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Ross Kabus· Sep 7, 2017, 14:41 UTC · lore

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(-)
Show changes to builtin/commit-tree.c +0 −1
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· Sep 8, 2017, 01:35 UTC · re: Ross Kabus · lore

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

Ross Kabus <rkabus@aerotech.com> writes:
Show 5 quoted lines
> 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.
Show 16 quoted lines
> 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· Sep 8, 2017, 22:06 UTC · re: Junio C Hamano · lore

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

On Thu, Sep 7, 2017 at 9:35 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
>     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· Sep 9, 2017, 03:22 UTC · re: Ross Kabus · lore

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

Ross Kabus <rkabus@aerotech.com> writes:
Show 14 quoted lines
> 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· Sep 14, 2017, 17:05 UTC · re: Junio C Hamano · lore

[PATCH v2] 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 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(-)
Show changes to builtin/commit-tree.c +0 −1
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

← back to recent threads