mbox series

[0/7] unresolve removal

Message ID 20230731224409.4181277-1-gitster@pobox.com (mailing list archive)
Headers show
Series unresolve removal | expand

Message

Junio C Hamano July 31, 2023, 10:44 p.m. UTC
This series is a culmination of various draft patches I have sent
out recently and have queued in two topics near the tip of 'seen'.

The primary objective is to allow undoing conflict resolution that
was done via "git rm".  When a conflicted path is resolved with "git
add" (i.e. replace higher stage index entries with stage #0 entry),
"git checkout -m -- path" and "git update-index --unresolve path"
worked using the resolve-undo information stored in the index, but a
conflicted path that is resolved with "git rm" (i.e. remove higher
stage index, without adding any stage #0 entry for the path), these
two commands did not work at all, or did not function correctly.


Junio C Hamano (7):
  update-index: do not read HEAD and MERGE_HEAD unconditionally
  resolve-undo: allow resurrecting conflicted state that resolved to
    deletion
  update-index: use unmerge_index_entry() to support removal
  update-index: remove stale fallback code for "--unresolve"
  checkout/restore: refuse unmerging paths unless checking out of the
    index
  checkout/restore: add basic tests for --merge
  checkout: allow "checkout -m path" to unmerge removed paths

 Documentation/git-checkout.txt |   9 ++-
 Documentation/git-restore.txt  |   4 ++
 builtin/checkout.c             |  15 +++--
 builtin/update-index.c         |  98 ++++----------------------------
 rerere.c                       |   2 +-
 resolve-undo.c                 | 101 ++++++++++++---------------------
 resolve-undo.h                 |   5 +-
 t/t2030-unresolve-info.sh      |  45 +++++++++++++--
 t/t2070-restore.sh             |  71 ++++++++++++++++++++++-
 t/t7201-co.sh                  |  47 +++++++++++++++
 10 files changed, 230 insertions(+), 167 deletions(-)

Comments

Taylor Blau Aug. 4, 2023, 7:03 p.m. UTC | #1
On Mon, Jul 31, 2023 at 03:44:02PM -0700, Junio C Hamano wrote:
>  Documentation/git-checkout.txt |   9 ++-
>  Documentation/git-restore.txt  |   4 ++
>  builtin/checkout.c             |  15 +++--
>  builtin/update-index.c         |  98 ++++----------------------------
>  rerere.c                       |   2 +-
>  resolve-undo.c                 | 101 ++++++++++++---------------------
>  resolve-undo.h                 |   5 +-
>  t/t2030-unresolve-info.sh      |  45 +++++++++++++--
>  t/t2070-restore.sh             |  71 ++++++++++++++++++++++-
>  t/t7201-co.sh                  |  47 +++++++++++++++
>  10 files changed, 230 insertions(+), 167 deletions(-)

I am not so familiar with this area, so take my review with a healthy
grain of salt, but this all LGTM.

Thanks,
Taylor