unpack-trees: do not fail reset because of unmerged skipped entry
commitb33fdfc34cda95f92cc7a50e5c81b87f8ee65eef
authorMax Kirillov <max@max630.net>
Tue, 10 Jul 2018 19:17:48 +0000 (10 22:17 +0300)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Jul 2018 16:35:41 +0000 (11 09:35 -0700)
treedd902336f607c413310baae3d40bf51d158081cd
parent53f9a3e157dbbc901a02ac2c73346d375e24978c
unpack-trees: do not fail reset because of unmerged skipped entry

After modify/delete merge conflict happens in a file skipped by sparse
checkout, "git reset --merge", which implements the "--abort" actions,
and "git reset --hard" fail with message "Entry * not uptodate. Cannot
update sparse checkout."

As explained in [1], the up-to-date checker mistakenly treats conflicted
entry which does not exist in HEAD as still skipped by sparse checkout.

Use the fix suggested in [1]. Also, add test case which verifies the
issue is fixed.

[1] https://public-inbox.org/git/20180616051444.GA29754@duynguyen.home/

Signed-off-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3035-merge-sparse.sh [new file with mode: 0755]
unpack-trees.c