Re: [PATCH 7/9] fmt-merge-msg: learn about the possibly-configured default branch name
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 10, 2020, 22:59 UTC
- Message-ID
- <xmqqo8pqedcg.fsf@gitster.c.googlers.com>
- In-Reply-To
- <e849def4a8c5cc291839ef4514a386df0c148b2e.1591823971.git.gitgitgadget@gmail.com>
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 40 quoted lines
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> When formatting the commit message for merge commits, Git appends "into
> <branch-name>" unless the current branch is the default branch.
>
> Now that we can configure what the default branch name should be, we
> will want to respect that setting in that scenario rather than using the
> compiled-in default branch name.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> fmt-merge-msg.c | 6 ++++--
> t/t6200-fmt-merge-msg.sh | 8 ++++++++
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c
> index 72d32bd73b1..5e5c1d86f1c 100644
> --- a/fmt-merge-msg.c
> +++ b/fmt-merge-msg.c
> @@ -407,7 +407,7 @@ static void fmt_merge_msg_title(struct strbuf *out,
> const char *current_branch)
> {
> int i = 0;
> - char *sep = "";
> + char *sep = "", *default_branch_name;
>
> strbuf_addstr(out, "Merge ");
> for (i = 0; i < srcs.nr; i++) {
> @@ -451,10 +451,12 @@ static void fmt_merge_msg_title(struct strbuf *out,
> strbuf_addf(out, " of %s", srcs.items[i].string);
> }
>
> - if (!strcmp("master", current_branch))
> + default_branch_name = git_default_branch_name(1);
> + if (!strcmp(default_branch_name, current_branch))
> strbuf_addch(out, '\n');
> else
> strbuf_addf(out, " into %s\n", current_branch);
> + free(default_branch_name);
> }Good. J6t reminded me earlier about this one when I said "except for 'init' and 'clone' (when it cannot tell what primary branch the source of the clone uses), we do not need a hardcoded 'master'", and the series covers this case. Very pleased.
Show 20 quoted lines
> static void fmt_tag_signature(struct strbuf *tagbuf,
> diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh
> index e4c2a6eca43..a23cd157ffd 100755
> --- a/t/t6200-fmt-merge-msg.sh
> +++ b/t/t6200-fmt-merge-msg.sh
> @@ -158,6 +158,14 @@ test_expect_success 'setup FETCH_HEAD' '
> git fetch . left
> '
>
> +test_expect_success 'with overridden default branch name' '
> + test_config core.defaultBranchName default &&
> + test_when_finished "git switch master" &&
> + git switch -c default &&
> + git fmt-merge-msg <.git/FETCH_HEAD >actual &&
> + ! grep "into default" actual
> +'
> +
> test_expect_success 'merge.log=3 limits shortlog length' '
> cat >expected <<-EOF &&
> Merge branch ${apos}left${apos}