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

Re: [PATCH v2 0/6] Fix checkout-dash to work with rebase

From
Ramkumar Ramachandra <artagnon@gmail.com>
Date
Jun 18, 2013, 09:30 UTC
Message-ID
<CALkWK0nGeyna_vxnN0RMULRj3sEj3v=Q61cXrHDYDHYv-nZ4sg@mail.gmail.com>
In-Reply-To
<7vk3lsei4i.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
Show 6 quoted lines
> I actually tried to reorder the patches and they seem to work OK as
> expected.  And I think it makes sense to order them the way I've
> been suggesting, so I'll tentatively queue the result of reordering
> on 'rr/rebase-checkout-reflog' and push it out as a part of 'pu'.
>
> Please check to see if I introduced a new bug while doing so.

Thanks for the reorder and commit message tweaks. I'm working on the series you put up on `pu` now.

Show 23 quoted lines
> For example, the one in "git reabse" does this:
>
>     GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $onto_name"
>     git checkout -q "$onto^0" || die "could not detach HEAD"
>     git update-ref ORIG_HEAD $orig_head
>     ...
>     run_specific_rebase
>
> But the specific rebase, e.g. git-rebase--interactive, does this:
>
>         case $head_name in
>         refs/*)
>                 message="$GIT_REFLOG_ACTION: $head_name onto $onto" &&
>                 git update-ref -m "$message" $head_name $newhead $orig_head &&
>                 git symbolic-ref \
>                   -m "$GIT_REFLOG_ACTION: returning to $head_name" \
>                   HEAD $head_name
>                 ;;
>         esac && {
>
> I think the message you added to "git reabse" is only meant for that
> specific "checkout $onto", but it is set globally.  Wouldn't it
> affect later use, which expected it to be "rebase" and nothing else?

Both rebase.sh and rebase--interactive.sh set a sane GIT_REFLOG_ACTION right on top (using set_reflog_action), so no worries. I'll just double-check to make sure that no bogus/ incorrect messages are printed.

> Perhaps something like this on top of the entire series may be
> sufficient (which will be queued as "SQUASH???" at the tip).

I think this takes the wrong approach to the problem. In my opinion, the correct approach is to actually overshadow die() with a function that clears GIT_REFLOG_ACTION before calling die().

>         git grep -C2 'git checkout' -- git-rebase\*.sh
Ugh.  I'll check all the codepaths thoroughly before submitting a re-roll.
Thanks.
Previous: Junio C HamanoNext: Ramkumar Ramachandra
Message 11 of 15 in “Fix checkout-dash to work with rebase”
  1. 0/6 Fix checkout-dash to work with rebaseRamkumar Ramachandra, Jun 16, 2013
  2. 1/6 t/checkout-last: checkout - doesn't work after rebaseRamkumar Ramachandra, Jun 16, 2013
  3. 2/6 rebase: prepare to write reflog message for checkoutRamkumar Ramachandra, Jun 16, 2013
  4. 3/6 rebase -i: prepare to write reflog message for checkoutRamkumar Ramachandra, Jun 16, 2013
  5. 4/6 wt-status: remove unused field in grab_1st_switch_cbdataRamkumar Ramachandra, Jun 16, 2013
  6. 5/6 status: do not depend on rebase reflog messagesRamkumar Ramachandra, Jun 16, 2013
  7. Junio C HamanoJun 17, 2013
  8. 6/6 checkout: respect GIT_REFLOG_ACTIONRamkumar Ramachandra, Jun 16, 2013
  9. Junio C HamanoJun 17, 2013
  10. Junio C HamanoJun 17, 2013
  11. Ramkumar RamachandraJun 18, 2013
  12. Ramkumar RamachandraJun 18, 2013
  13. Ramkumar RamachandraJun 18, 2013
  14. Junio C HamanoJun 18, 2013
  15. Ramkumar RamachandraJun 18, 2013

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.