Merge branch 'en/merge-recursive-skip-fix'
commite4095da40eef81f853bbeedf44d7f344bf682232
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Aug 2018 22:08:25 +0000 (15 15:08 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Aug 2018 22:08:26 +0000 (15 15:08 -0700)
tree456ce3ad1c5bc26992b02536fbe294f619b12cec
parentd6628c99faf0de4d34c44f815d2aaa7dee38a300
parent2b75fb601c05a789988cf0e1b3c1375ee62d3c3e
Merge branch 'en/merge-recursive-skip-fix'

When the sparse checkout feature is in use, "git cherry-pick" and
other mergy operations lost the skip_worktree bit when a path that
is excluded from checkout requires content level merge, which is
resolved as the same as the HEAD version, without materializing the
merge result in the working tree, which made the path appear as
deleted.  This has been corrected by preserving the skip_worktree
bit (and not materializing the file in the working tree).

* en/merge-recursive-skip-fix:
  merge-recursive: preserve skip_worktree bit when necessary
  t3507: add a testcase showing failure with sparse checkout
merge-recursive.c