[PATCH v2 06/12] branch -m: adjust `core.mainBranch` if necessary
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Jun 15, 2020, 12:50 UTC
- Message-ID
- <933e314813df34aafca1a47bfc1fcba389dd5364.1592225416.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.656.v2.git.1592225416.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
When renaming the main branch (as possibly identified by the `core.mainBranch` setting), we will want to record that the main branch now has a different name.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- builtin/branch.c | 9 +++++++++ t/t3200-branch.sh | 9 +++++++++ 2 files changed, 18 insertions(+)
diff --git a/builtin/branch.c b/builtin/branch.c index accb61b1aae..62f8db5fb05 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -556,6 +556,15 @@ static void copy_or_rename_branch(const char *oldname, const char *newname, int replace_each_worktree_head_symref(oldref.buf, newref.buf, logmsg.buf)) die(_("Branch renamed to %s, but HEAD is not updated!"), newname); + if (!copy) { + char *main_branch = git_main_branch_name(0); + + if (!strcmp(interpreted_oldname, main_branch)) + git_config_set("core.mainbranch", interpreted_newname); + + free(main_branch); + } + strbuf_release(&logmsg); strbuf_addf(&oldsection, "branch.%s", interpreted_oldname); diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index 411a70b0ce9..328544f2736 100755 --- a/t/t3200-branch.sh +++ b/t/t3200-branch.sh @@ -467,6 +467,15 @@ EOF test_cmp expect actual ' +test_expect_success 'renaming the main branch modifies core.mainBranch' ' + git init rename-main && + test_commit -C rename-main initial && + git -C rename-main branch -m trunk && + git -C rename-main config core.mainBranch >actual && + echo trunk >expect && + test_cmp expect actual +' + test_expect_success 'git branch -c dumps usage' ' test_expect_code 128 git branch -c 2>err && test_i18ngrep "branch name required" err
-- gitgitgadget