git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/4] Sparse-checkout: Add subcommand and Windows paths

From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Date
Feb 11, 2020, 15:02 UTC
Message-ID
<pull.546.git.1581433344.gitgitgadget@gmail.com>
This is based on ds/sparse-checkout-harden.

The sparse-checkout builtin currently lets users modify their sparse-checkout file with the all-or-nothing "set" subcommand. It may be easier for a user to expand their sparse cone using a "git sparse-checkout add <pattern/path> ..." subcommand. To achieve this while reusing as much code as possible from the "set" subcommand, the first two patches extract methods from sparse_checkout_set().

As part of this "add" subcommand, I created a modify_pattern_list() method that serves as the core interaction with the sparse-checkout file and working directory. It changes how it constructs the in-memory pattern list based on an "enum modify_type" that only has two options: REPLACE and ADD. This could be extended with REMOVE in a later update. I started building the REMOVE logic, but it was more complicated than ADD, and I didn't have time to finish it right now due to other obligations.

Finally, a Windows user contacted me about using Windows-style paths when in cone mode to add a nested directory. This case is fixed and tested in the final patch.

Thanks, -Stolee
Derrick Stolee (4):
  sparse-checkout: extract add_patterns_from_input()
  sparse-checkout: extract pattern update from 'set' subcommand
  sparse-checkout: create 'add' subcommand
  sparse-checkout: work with Windows paths
 Documentation/git-sparse-checkout.txt |   7 ++
 builtin/sparse-checkout.c             | 141 ++++++++++++++++++++------
 t/t1091-sparse-checkout-builtin.sh    |  73 +++++++++++++
 3 files changed, 189 insertions(+), 32 deletions(-)
base-commit: f998a3f1e588d73ed7285cb14ac4839f63f6dc82
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-546%2Fderrickstolee%2Fsparse-add-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-546/derrickstolee/sparse-add-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/546
-- 
gitgitgadget
Next: Derrick Stolee via GitGitGadget
Message 1 of 9 in “Sparse-checkout: Add subcommand and Windows paths”
  1. 0/4 Sparse-checkout: Add subcommand and Windows pathsDerrick Stolee via GitGitGadget, Feb 11, 2020
  2. 2/4 sparse-checkout: extract pattern update from 'set' subcommandDerrick Stolee via GitGitGadget, Feb 11, 2020
  3. 3/4 sparse-checkout: create 'add' subcommandDerrick Stolee via GitGitGadget, Feb 11, 2020
  4. Junio C HamanoFeb 11, 2020
  5. 1/4 sparse-checkout: extract add_patterns_from_input()Derrick Stolee via GitGitGadget, Feb 11, 2020
  6. Junio C HamanoFeb 11, 2020
  7. 4/4 sparse-checkout: work with Windows pathsDerrick Stolee via GitGitGadget, Feb 11, 2020
  8. Junio C HamanoFeb 11, 2020
  9. Jeff KingFeb 11, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.