[PATCH 0/8] Harden the sparse-checkout builtin
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Jan 14, 2020, 19:25 UTC
- Message-ID
- <pull.513.git.1579029962.gitgitgadget@gmail.com>
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