Re: [PATCH v2 2/4] branch -m: allow renaming a yet-unborn branch
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 23, 2020, 23:45 UTC
- Message-ID
- <xmqqd003ljru.fsf@gitster.c.googlers.com>
- In-Reply-To
- <8de0c0eb228c8d9608d3a78c992cbd6829cb9329.1606173607.git.gitgitgadget@gmail.com>
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 6 quoted lines
> @@ -538,7 +538,8 @@ static void copy_or_rename_branch(const char *oldname, const char *newname, int > strbuf_addf(&logmsg, "Branch: renamed %s to %s", > oldref.buf, newref.buf); > > - if (!copy && rename_ref(oldref.buf, newref.buf, logmsg.buf)) > + if (!copy && (oldname != head || !is_null_oid(&head_oid)) &&
It always makes readers uneasy to see pointer comparison of two strings.
Does this mean, after "git -c init.defaultbranch=master init",
git branch -m master main
would not work while
git branch -m main
would? It would be easy to see with the attached patch to the test, I guess.
Show 19 quoted lines
> + rename_ref(oldref.buf, newref.buf, logmsg.buf))
> die(_("Branch rename failed"));
> if (copy && copy_existing_ref(oldref.buf, newref.buf, logmsg.buf))
> die(_("Branch copy failed"));
> diff --git a/t/t0001-init.sh b/t/t0001-init.sh
> index 69a320489f..69c5ad179c 100755
> --- a/t/t0001-init.sh
> +++ b/t/t0001-init.sh
> @@ -571,4 +571,10 @@ test_expect_success 'invalid default branch name' '
> test_i18ngrep "invalid branch name" err
> '
>
> +test_expect_success 'branch -m with the initial branch' '
> + git init rename-initial-branch &&
> + git -C rename-initial-branch branch -m renamed &&
> + test renamed = $(git -C rename-initial-branch symbolic-ref --short HEAD)
> +'
> +
> test_doneThanks.
t/t0001-init.sh | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git c/t/t0001-init.sh w/t/t0001-init.sh index 69c5ad179c..07c34431d9 100755 --- c/t/t0001-init.sh +++ w/t/t0001-init.sh @@ -577,4 +577,10 @@ test_expect_success 'branch -m with the initial branch' ' test renamed = $(git -C rename-initial-branch symbolic-ref --short HEAD) ' +test_expect_success 'branch -m with the initial branch' ' + git -c init.defaultBranch=initial init rename-unborn-branch && + git -C rename-unborn-branch branch -m initial renamed && + test renamed = $(git -C rename-unborn-branch symbolic-ref --short HEAD) +' + test_done