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

Re: BUG: "cherry-pick A..B || git reset --hard OTHER"

From
Duy Nguyen <pclouds@gmail.com>
Date
Dec 10, 2016, 11:00 UTC
Message-ID
<CACsJy8Div=Baenn7c-1wxgvrOh5PG=naeDrEYC8gs+AvJE7wZA@mail.gmail.com>
In-Reply-To
<e0780f7c-ccb4-29fe-3d72-80e45a202f65@gmx.net>
On Sat, Dec 10, 2016 at 2:24 AM, Stephan Beyer <s-beyer@gmx.net> wrote:
Show 19 quoted lines
> Hi Junio,
>
> On 12/09/2016 07:07 PM, Junio C Hamano wrote:
>> Duy Nguyen <pclouds@gmail.com> writes:
>>> Having the same operation with different names only increases git
>>> reputation of bad/inconsistent UI. Either forget is renamed to quit,
>>> or vice versa. I prefer forget, but the decision is yours and the
>>> community's. So I'm sending two patches to rename in either direction.
>>> You can pick one.
>>
>> I actually was advocating to remove both by making --abort saner.
>> With an updated --abort that behaves saner, is "rebase --forget"
>> still necessary?
>
> A quick change in t3407 of the "rebase --forget" test to use "rebase
> --abort" failed.  That's because it checks the use-case of
> forgetting/aborting without changing the HEAD.  So --abort makes a
> rollback, --forget just keeps the current head.  I am not sure if that
> tested use-case is a real use-case though.

It is. I wanted something like this for years but "rm -rf /path/to/.git/rebase*" was not as bad when there were no linked worktrees.

rebase and cherry-pick/revert are not exactly in the same situation. When cherry-pick/revert in "continue/abort" mode, there's usually some conflicted files and it's easy to notice.

But an interactive rebase could stop at some commit with clean worktree (the 'edit' command). Then I could even add some more commits on top. I don't see how 'rebase --abort' can know my intention in this case, whether I tried (with some new commits) and failed, and want to revert/abort the whole thing, moving HEAD back to the original; or whether I forgot I was in the middle of rebase and started to do something else, and --abort needs to keep HEAD where it is.

-- 
Duy
Previous: Stephan BeyerNext: Junio C Hamano
Message 13 of 15 in “BUG: "cherry-pick A..B || git reset --hard OTHER"”
  1. Junio C HamanoDec 6, 2016
  2. Christian CouderDec 7, 2016
  3. Stephan BeyerDec 7, 2016
  4. Junio C HamanoDec 7, 2016
  5. Stephan BeyerDec 7, 2016
  6. Duy NguyenDec 7, 2016
  7. Duy NguyenDec 9, 2016
  8. rebase: rename --forget to be consistent with sequencerNguyễn Thái Ngọc Duy, Dec 9, 2016
  9. revert, cherry-pick: rename --quit to be consistent with rebaseNguyễn Thái Ngọc Duy, Dec 9, 2016
  10. Junio C HamanoDec 9, 2016
  11. Stephan BeyerDec 9, 2016
  12. Stephan BeyerDec 9, 2016
  13. Duy NguyenDec 10, 2016
  14. Junio C HamanoDec 10, 2016
  15. Christian CouderDec 8, 2016

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.