Re: [PATCH v2 11/11] rebase: dereference tags
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Sep 14, 2021, 09:58 UTC
- Message-ID
- <c0e95f69-b4e9-4510-8880-3110e9af36ab@gmail.com>
- In-Reply-To
- <87r1dr5vyd.fsf@osv.gnss.ru>
Hi Sergey
On 14/09/2021 10:48, Sergey Organov wrote:
Show 41 quoted lines
> "Phillip Wood via GitGitGadget" <gitgitgadget@gmail.com> writes: > >> From: Phillip Wood <phillip.wood@dunelm.org.uk> >> >> Aborting a rebase stated with 'git rebase <upstream> <tag-object>' >> should checkout the commit pointed to by <tag-object>. Instead it gives >> >> error: update_ref failed for ref 'HEAD': cannot update ref 'HEAD': >> trying to write non-commit object >> 710d743b2b9892457fdcc3970f397e6ec07447e0 to branch 'HEAD' >> >> This is because when we parse the command line arguments although we >> check that the tag points to a commit we remember the oid of the tag >> and try and checkout that object rather than the commit it points >> to. Fix this by using lookup_commit_reference_by_name() when parsing >> the command line. >> >> Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> > > [...] > >> diff --git a/t/t3407-rebase-abort.sh b/t/t3407-rebase-abort.sh >> index 162112ba5ea..ebbaed147a6 100755 >> --- a/t/t3407-rebase-abort.sh >> +++ b/t/t3407-rebase-abort.sh >> @@ -11,18 +11,18 @@ test_expect_success setup ' >> test_commit a a a && >> git branch to-rebase && >> >> - test_commit b a b && >> - test_commit c a c && >> + test_commit --annotate b a b && >> + test_commit --annotate c a c && >> >> git checkout to-rebase && >> test_commit "merge should fail on this" a d d && >> - test_commit "merge should fail on this, too" a e pre-rebase >> + test_commit --annotate "merge should fail on this, too" a e pre-rebase >> ' > > These two do not seem to belong to this particular commit?
They do, the annotated tag is used in the new test added in this commit which tests that we peel tags.
Best Wishes
Phillip
Show 11 quoted lines
>> # Check that HEAD is equal to "pre-rebase" and the current branch is
>> # "to-rebase"
>> check_head() {
>> - test_cmp_rev HEAD pre-rebase &&
>> + test_cmp_rev HEAD pre-rebase^{commit} &&
>> test "$(git symbolic-ref HEAD)" = refs/heads/to-rebase
>> }
>
>
> -- Sergey Organov
>