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

Re: git merge --abort

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 24, 2009, 02:01 UTC
Message-ID
<7vk57goanf.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<200902240253.35470.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> writes:
Show 26 quoted lines
> Junio C Hamano wrote:
>> John Tapsell <johnflux@gmail.com> writes:
>> 
>> > It sounds like we have some sort of plan then.  Will Nana's patch be
>> > committed into mainline git?  Then we can add the --abort porcelain
>> 
>> I do not know what plan you are talking about, but that's not how the
>> development works.  If something is merged to 'pu', and you have a cool
>> feature you would want to take advantage of it, you can build your cool
>> feature on top of that particular topic.  If the result looks reasonable
>> they would cook for a while in 'next' for further polishing and then
>> finally go to 'mainline'.
>> 
>> I personally did not think "--keep" would need to be be part of a
>> reasonable "merge --abort" implementation, but I may have missed some
>> description of a viable design discussed on the list.
>
> My idea was that merge would do the following:
>
>   $ <save stash into MERGE_STASH or similar, no reset>
>   $ <do a merge>
>
> Then we have two possibilities:
>
>   # merge failed with conflicts
>   $ git merge --abort (would unstash MERGE_STASH and delete it)

Here "would unstash" needs to follow something else, namely, make your work tree free of local changes. How? "reset --hard"?

>   # we created merge conflict
>   $ <MERGE_STASH is removed together with MERGE_HEAD>

You mean "created a merge without conflict", right? That part is easy to guess and understand.

In fact, when you run more than one strategies, something similar to this already happens internally. The C version may be harder to follow, but you can check the last scripted version contrib/examples/git-merge.sh and find two functions, savestate/restorestate pair, that does exactly that.

It way predates --keep patch, by the way.
Previous: Jakub NarebskiNext: Jakub Narebski
Message 17 of 18 in “git merge --abort”
  1. John TapsellFeb 19, 2009
  2. Junio C HamanoFeb 19, 2009
  3. John TapsellFeb 19, 2009
  4. Jay SoffianFeb 19, 2009
  5. John TapsellFeb 20, 2009
  6. Junio C HamanoFeb 20, 2009
  7. John TapsellFeb 20, 2009
  8. Junio C HamanoFeb 20, 2009
  9. John TapsellFeb 20, 2009
  10. Bryan DonlanFeb 21, 2009
  11. Jakub NarebskiFeb 21, 2009
  12. Junio C HamanoFeb 21, 2009
  13. Jakub NarebskiFeb 21, 2009
  14. John TapsellFeb 23, 2009
  15. Junio C HamanoFeb 24, 2009
  16. Jakub NarebskiFeb 24, 2009
  17. Junio C HamanoFeb 24, 2009
  18. Jakub NarebskiFeb 24, 2009

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.