This fixes a memory leak reported in [1], but also fixes some behavior concerns around the sparse-checkout command when the sparse-checkout file does not use cone mode patterns, but cone mode is enabled. [1] https://lore.kernel.org/git/CAKRwm5a9PyqffEC5N__urSpNcZ-d5vz9GBM2Ei16eGS25B=-FQ@xxxxxxxxxxxxxx/ 1. The first patch fixes the OOM as recommended by Taylor. 2. The second patch changes the behavior of 'git sparse-checkout init --cone' to overwrite the sparse-checkout file if the patterns are not in cone mode. 3. The third patch causes 'git sparse-checkout add' to fail if cone mode is enabled but the existing patterns are not in cone mode. This also requires strengthening our pattern filtering to require the first character be a slash ('/'), which should have been there from the start. Thanks, -Stolee Derrick Stolee (3): sparse-checkout: fix OOM error with mixed patterns sparse-checkout: clear patterns when switching modes sparse-checkout: refuse to add to bad patterns builtin/sparse-checkout.c | 18 +++++++++++++++--- dir.c | 2 +- t/t1091-sparse-checkout-builtin.sh | 22 ++++++++++++++++++++-- 3 files changed, 36 insertions(+), 6 deletions(-) base-commit: 4c719308ce59dc70e606f910f40801f2c6051b24 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1043%2Fderrickstolee%2Fsparse-checkout-fix-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1043/derrickstolee/sparse-checkout-fix-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1043 -- gitgitgadget