Re: [PATCH v2 11/11] rebase: dereference tags
"Phillip Wood via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 16 quoted lines
> 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>
Show 18 quoted lines
> 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?
Show 8 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
> }