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

Re: git merge --abort? [was: Re: [PATCHv4 00/21] git notes merge]

From
Johan Herland <johan@herland.net>
Date
Oct 22, 2010, 15:12 UTC
Message-ID
<201010221712.06059.johan@herland.net>
In-Reply-To
<20101022145553.GA9224@burratino>
On Friday 22 October 2010, Jonathan Nieder wrote:
Show 7 quoted lines
> Johan Herland wrote:
> > Does this mean that there are situations where you simply _cannot_
> > get back to the pre-merge state (using 'git reset --merge' or
> > otherwise)?
>
> Technically yes, there is such an edge case, but I don't think that
> was what he was talking about.
Ah, sorry for the misunderstanding.
Show 21 quoted lines
> > Is this something we should detect and warn about when starting the
> > merge? Something like:
> >
> >   $ git merge bar
> >   I'm sorry, Dave. I'm afraid I can't merge with and unclean index.
> >   Use -f to force the merge anyway, but then 'git merge --abort'
> > will lose your staged changes.
>
> "Use -f to force the merge anyway" does not make sense to me.
> git merge does not work with an index that does not match HEAD
> (except in the aforementioned edge case where the content in the edge
> already matches the merged content).  So 'git merge' bails out in
> this case, leaving the index as-is; if a person doesn't notice that
> and tries 'git reset --merge', her staged changes may be clobbered.
>
> > Or could we solve it simply by making a backup of the pre-merge
> > index that can later be restored by 'git merge --abort'?
>
> Yes, that's one way.  I think it might be better for 'git reset
> --merge' to check for MERGE_HEAD and do nothing if it is absent if we
> want it to be closer to an inverse to failed 'git merge'.

Yes, that makes sense to me, especially if we make a 'git merge --abort' synonym. Alternatively, we can make 'git merge --abort' check for MERGE_HEAD, and then defer to 'git reset --merge', while leaving 'git reset --merge' as-is.

...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: Jonathan NiederNext: Sverre Rabbelier
Message 34 of 43 in “[PATCHv4 00/21] git notes merge”
  1. Johan HerlandOct 21, 2010
  2. 01/21 notes.c: Hexify SHA1 in die() message from init_notes()Johan Herland, Oct 21, 2010
  3. 02/21 (trivial) notes.h: Minor documentation fixes to copy_notes()Johan Herland, Oct 21, 2010
  4. 03/21 notes.h: Make default_notes_ref() available in notes APIJohan Herland, Oct 21, 2010
  5. 04/21 notes.c: Reorder functions in preparation for next commitJohan Herland, Oct 21, 2010
  6. 05/21 notes.h/c: Clarify the handling of notes objects that are == null_sha1Johan Herland, Oct 21, 2010
  7. Jonathan NiederOct 21, 2010
  8. Johan HerlandOct 21, 2010
  9. Jonathan NiederOct 21, 2010
  10. Johan HerlandOct 22, 2010
  11. 06/21 notes.h/c: Propagate combine_notes_fn return value to add_note() and beyondJohan Herland, Oct 21, 2010
  12. Jonathan NiederOct 21, 2010
  13. Johan HerlandOct 21, 2010
  14. 07/21 (trivial) t3303: Indent with tabs instead of spaces for consistencyJohan Herland, Oct 21, 2010
  15. 08/21 notes.c: Use two newlines (instead of one) when concatenating notesJohan Herland, Oct 21, 2010
  16. 09/21 builtin/notes.c: Split notes ref DWIMmery into a separate functionJohan Herland, Oct 21, 2010
  17. 10/21 git notes merge: Initial implementation handling trivial merges onlyJohan Herland, Oct 21, 2010
  18. 11/21 builtin/notes.c: Refactor creation of notes commits.Johan Herland, Oct 21, 2010
  19. 12/21 git notes merge: Handle real, non-conflicting notes mergesJohan Herland, Oct 21, 2010
  20. 13/21 git notes merge: Add automatic conflict resolvers (ours, theirs, union)Johan Herland, Oct 21, 2010
  21. 14/21 Documentation: Preliminary docs on 'git notes merge'Johan Herland, Oct 21, 2010
  22. 15/21 git notes merge: Manual conflict resolution, part 1/2Johan Herland, Oct 21, 2010
  23. 16/21 git notes merge: Manual conflict resolution, part 2/2Johan Herland, Oct 21, 2010
  24. 17/21 git notes merge: List conflicting notes in notes merge commit messageJohan Herland, Oct 21, 2010
  25. 18/21 git notes merge: --commit should fail if underlying notes ref has movedJohan Herland, Oct 21, 2010
  26. 19/21 git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"Johan Herland, Oct 21, 2010
  27. 20/21 git notes merge: Add testcases for merging notes trees at different fanoutsJohan Herland, Oct 21, 2010
  28. 21/21 Provide 'git notes get-ref' to easily retrieve current notes refJohan Herland, Oct 21, 2010
  29. Sverre RabbelierOct 21, 2010
  30. Junio C HamanoOct 21, 2010
  31. Jonathan NiederOct 21, 2010
  32. git merge --abort? [was: Re: [PATCHv4 00/21] git notes merge]Johan Herland, Oct 22, 2010
  33. Jonathan NiederOct 22, 2010
  34. Johan HerlandOct 22, 2010
  35. Sverre RabbelierOct 22, 2010
  36. Jonathan NiederOct 22, 2010
  37. Sverre RabbelierOct 22, 2010
  38. Johan HerlandOct 22, 2010
  39. Sverre RabbelierOct 22, 2010
  40. Johan HerlandOct 23, 2010
  41. Sverre RabbelierOct 23, 2010
  42. Johan HerlandOct 22, 2010
  43. Sverre RabbelierOct 23, 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.