This series is based on ds/sparse-list-in-cone-mode.
This series attempts to clean up some rough edges in the sparse-checkout
feature, especially around the cone mode.
Unfortunately, after the v2.25.0 release, we noticed an issue with the "git
clone --sparse" option when using a URL instead of a local path. This is
fixed and properly tested here.
Also, let's improve Git's response to these more complicated scenarios:
1. Running "git sparse-checkout init" in a worktree would complain because
the "info" dir doesn't exist.
2. Tracked paths that include "*" and "" in their filenames.
3. If a user edits the sparse-checkout file to have non-cone pattern, such
as "*" anywhere or "" in the wrong place, then we should respond
appropriately. That is: warn that the patterns are not cone-mode, then
revert to the old logic.
Thanks, -Stolee
Derrick Stolee (8):
t1091: use check_files to reduce boilerplate
sparse-checkout: create leading directories
clone: fix --sparse option with URLs
sparse-checkout: cone mode does not recognize "**"
sparse-checkout: detect short patterns
sparse-checkout: warn on incorrect '*' in patterns
sparse-checkout: properly match escaped characters
sparse-checkout: write escaped patterns in cone mode
builtin/clone.c | 2 +-
builtin/sparse-checkout.c | 52 ++++-
dir.c | 69 ++++++-
dir.h | 1 +
t/t1091-sparse-checkout-builtin.sh | 320 ++++++++++++++++-------------
5 files changed, 296 insertions(+), 148 deletions(-)
base-commit: 4fd683b6a35eabd23dd5183da7f654a1e1f00325
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-513%2Fderrickstolee%2Fsparse-harden-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-513/derrickstolee/sparse-harden-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/513
--
gitgitgadget