]> git.ipfire.org Git - thirdparty/git.git/commit - unpack-trees.c
sparse-checkout: fix cone mode behavior mismatch
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 31 Jan 2020 20:16:15 +0000 (20:16 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 31 Jan 2020 21:05:29 +0000 (13:05 -0800)
commitf998a3f1e588d73ed7285cb14ac4839f63f6dc82
tree264439faaceedd68588b444cd191b450fbd1e700
parentd2e65f4c9056be72ff8a1f39245c5e1b27d556b2
sparse-checkout: fix cone mode behavior mismatch

The intention of the special "cone mode" in the sparse-checkout
feature is to always match the same patterns that are matched by the
same sparse-checkout file as when cone mode is disabled.

When a file path is given to "git sparse-checkout set" in cone mode,
then the cone mode improperly matches the file as a recursive path.
When setting the skip-worktree bits, files were not expecting the
MATCHED_RECURSIVE response, and hence these were left out of the
matched cone.

Fix this bug by checking for MATCHED_RECURSIVE in addition to MATCHED
and add a test that prevents regression.

Reported-by: Finn Bryant <finnbryant@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1091-sparse-checkout-builtin.sh
unpack-trees.c