Re: [PATCH] cherry-pick -x: improve handling of one-liner commit messages
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 29, 2013, 17:23 UTC
- Message-ID
- <7v8v56p1bl.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20130329153818.GB27251@suse.cz>
Miklos Vajna <vmiklos@suse.cz> writes:
Show 6 quoted lines
> git cherry-pick -x normally just appends the "cherry picked from commit" > line at the end of the message, which is fine. However, in case the > original commit message had only one line, first append a newline, > otherwise the second line won't be empty, which is against > recommendations. > ---
Sign-off?
I think this is part of the bc/append-signed-off-by topic that is about to graduate to 'master'; more specifically, b971e04f54e7 (sequencer.c: always separate "(cherry picked from" from commit body, 2013-02-12) does the equivalent, no?
Show 44 quoted lines
> sequencer.c | 10 ++++++++++
> t/t3501-revert-cherry-pick.sh | 8 ++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/sequencer.c b/sequencer.c
> index aef5e8a..1ae0e43 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -496,6 +496,16 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
> }
>
> if (opts->record_origin) {
> +
> + /*
> + * If this the message is a one-liner, append a
> + * newline, so the second line will be empty, as
> + * recommended.
> + */
> + p = strstr(msgbuf.buf, "\n\n");
> + if (!p)
> + strbuf_addch(&msgbuf, '\n');
> +
> strbuf_addstr(&msgbuf, "(cherry picked from commit ");
> strbuf_addstr(&msgbuf, sha1_to_hex(commit->object.sha1));
> strbuf_addstr(&msgbuf, ")\n");
> diff --git a/t/t3501-revert-cherry-pick.sh b/t/t3501-revert-cherry-pick.sh
> index 6f489e2..858c744 100755
> --- a/t/t3501-revert-cherry-pick.sh
> +++ b/t/t3501-revert-cherry-pick.sh
> @@ -70,6 +70,14 @@ test_expect_success 'cherry-pick after renaming branch' '
>
> '
>
> +test_expect_success 'cherry-pick -x of one-liner commit message' '
> +
> + git checkout rename2 &&
> + git cherry-pick -x added &&
> + git show -s --pretty=format:%s | test_must_fail grep "cherry picked"
> +
> +'
> +
> test_expect_success 'revert after renaming branch' '
>
> git checkout rename1 &&