Hi Stolee, On Tue, Jan 14, 2020 at 07:25:54PM +0000, Derrick Stolee via GitGitGadget wrote: > 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. I haven't had a chance to look at the other patches (besides the one that I have already reviewed on- and off-list), so take my comments here with a grain of salt. It's too bad that 'git clone --sparse' isn't working with URLs in v2.25.0, but it happens, and I don't think that this is a grave-enough issue to warrant a new release. At least, since '--sparse' is new in v2.25.0, we're not breaking existing workflows that have already relied on it. And, since sparse-checkout is still relatively niche (at, least for now ;-)), I think that this not handling cloning from URLs is fine until v2.26.0. Of course, if there's ever another need for v2.25.1, I don't think that this would *hurt* to release then, which is to say that we definitely should have these patches in a release, soon, but I don't think that there's a terrible sense of urgency in the meantime. > 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 Thanks, Taylor