git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Re: [PATCH] rebase--interactive: don't enforce valid branch

From
Dave Olszewski <cxreg@pobox.com>
Date
Mar 15, 2010, 08:41 UTC
Message-ID
<alpine.DEB.2.00.1003150132060.4362@narbuckle.genericorp.net>
In-Reply-To
<7vd3z6f6wt.fsf@alter.siamese.dyndns.org>
On Sun, 14 Mar 2010, Junio C Hamano wrote:
> Ahh, Ok, the point is that when we start this sequence we are on a branch,
> and then you want to end up on a detached HEAD that points at the result
> of the branch.
Yep, you got it
Show 11 quoted lines
> I'll queue it in 'pu', but with a little tweak to the test to make it
> clear what is going on, perhaps like this.
>
>    test_expect_success 'rebase while detaching HEAD' '
>            git symbolic-ref HEAD &&
>            grandparent=$(git rev-parse HEAD~2) &&
>            test_tick &&
>            FAKE_LINES="2 1" git rebase -i HEAD~2 HEAD^0 &&
>            test $grandparent = $(git rev-parse HEAD~2) &&
>            test_must_fail git symbolic-ref HEAD
>    '
Good idea.  Thanks.
Show 7 quoted lines
> We may need to document this behaviour, by the way, if we make it official
> that the extra "branch to be rewritten" parameter can be a non-branch.
> Two points are that you can give arbitrary commit, and that you will end
> up with a detached HEAD that points at the result if you did so.
>
> Also I did't followed the code, but does it behave sanely when you say
> "rebase --abort"?

Good question. It turns out that both rebase and rebase -i will end up on the commit specified by <branch>, whether it's a branch or not. That might be the expected and desired behavior, though:

   [Starting on branch A]
   git rebase origin/B B
   git rebase --abort
   [HEAD is now a symref to B]
   [Starting on branch A]
   git rebase origin/B B^0
   git rebase --abort
   [HEAD is now detached at B^0]
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 8 in “rebase--interactive: don't enforce valid branch”
  1. rebase--interactive: don't enforce valid branchDave Olszewski, Mar 15, 2010
  2. Junio C HamanoMar 15, 2010
  3. Dave OlszewskiMar 15, 2010
  4. Junio C HamanoMar 15, 2010
  5. Dave OlszewskiMar 15, 2010
  6. Junio C HamanoMar 15, 2010
  7. Dave OlszewskiMar 15, 2010
  8. Junio C HamanoMar 15, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.