unpack-trees(): ignore worktree check outside checkout area
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 20 Aug 2009 13:47:10 +0000 (20:47 +0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 24 Aug 2009 00:14:41 +0000 (17:14 -0700)
commitf1f523eae99020d58ad6e7a1ef8187569e15c270
tree3344bcf45984a244cd105be11c12ad5e270a20c0
parente800ec9d72a0fafbc323c41e90f7757062c2680e
unpack-trees(): ignore worktree check outside checkout area

verify_absent() and verify_uptodate() are used to ensure worktree
is safe to be updated, then CE_REMOVE or CE_UPDATE will be set.
Finally check_updates() bases on CE_REMOVE, CE_UPDATE and the
recently added CE_WT_REMOVE to update working directory accordingly.

The entries that are checked may eventually be left out of checkout
area (done later in apply_sparse_checkout()). We don't want to update
outside checkout area. This patch teaches Git to assume "good",
skip these checks when it's sure those entries will be outside checkout
area, and clear CE_REMOVE|CE_UPDATE that could be set due to this
assumption.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c