Several "recovery" commands outright fail or do not fully recover
when directory-file conflicts are present.  This includes:
   * git read-tree --reset HEAD
   * git am --skip
   * git am --abort
   * git merge --abort (or git reset --merge)
   * git reset --hard

It turns out that multiple invocations of 'git reset --hard' can serve as
a functional workaround, but I've been annoyed with that workaround for
years.  This time, I found the problem, and this patch series provides a
fix for all of these.


Elijah Newren (2):
  t1015: demonstrate directory/file conflict recovery failures
  read-cache: fix directory/file conflict handling in read_index_unmerged()

 read-cache.c                         |  13 +--
 t/t1015-read-index-unmerged.sh       | 123 +++++++++++++++++++++++++++
 t/t6020-merge-df.sh                  |   3 -
 t/t6042-merge-rename-corner-cases.sh |   1 -
 4 files changed, 131 insertions(+), 9 deletions(-)
 create mode 100755 t/t1015-read-index-unmerged.sh

-- 
2.18.0.138.g557c5d94c.dirty

Reply via email to