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

[PATCH v2 00/14] Sparse checkout

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Sep 20, 2008, 10:01 UTC
Message-ID
<1221904913-25887-1-git-send-email-pclouds@gmail.com>
Main changes from the last round are:
 - The name is now "sparse checkout"
 - "git clone --path" => "git clone --narrow-path"
 - "git checkout --path" => "git checkout --reset-path"
 - New narrow spec (or "sparse patterns" from now) resembles
   .gitignore patterns
 - "git ls-files" now supports more fine-grained listing. It can now
   list checkout files, no-checkout files or orphaned (previously
   "overlay") files. --overlay is gone
 - "git status" shows orphaned entries and remedies
 - Documentation has been restructured to accompany code changes.
   Thanks to Jakub, Baz for lots of input.
For code changes, significant changes are:
  [03/14] ls-files: add options to support sparse checkout
  [10/14] ls-files: support "sparse patterns", used to form sparse checkout areas
I hope I have addressed all the issues. If I miss anything, please speak up.
Nguyễn Thái Ngọc Duy (14):
  Extend index to save more flags
  Introduce CE_NO_CHECKOUT bit
  ls-files: add options to support sparse checkout
  update-index: refactor mark_valid() in preparation for new options
  update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bit
  ls-files: Add tests for --sparse and friends
  Prevent diff machinery from examining worktree outside sparse checkout
  checkout_entry(): CE_NO_CHECKOUT on checked out entries.
  grep: skip files outside sparse checkout area
  ls-files: support "sparse patterns", used to form sparse checkout areas
  unpack_trees(): add support for sparse checkout
  clone: support sparse checkout with --narrow-path option
  checkout: add new options to support sparse checkout
  wt-status: Show orphaned entries in "git status" output
 .gitignore                            |    1 +
 Documentation/git-checkout.txt        |  131 ++++++++++++++++++++-
 Documentation/git-clone.txt           |   10 ++-
 Documentation/git-grep.txt            |    4 +-
 Documentation/git-ls-files.txt        |   30 +++++-
 Documentation/git-update-index.txt    |   13 ++
 Makefile                              |    2 +-
 builtin-checkout.c                    |   37 ++++++
 builtin-clone.c                       |   13 ++
 builtin-grep.c                        |    7 +-
 builtin-ls-files.c                    |   60 +++++++++-
 builtin-update-index.c                |   40 ++++---
 cache.h                               |   69 ++++++++++-
 diff-lib.c                            |    5 +-
 diff.c                                |    4 +-
 entry.c                               |    1 +
 read-cache.c                          |   57 +++++++--
 t/t2011-checkout-sparse.sh            |  108 +++++++++++++++++
 t/t2104-update-index-no-checkout.sh   |   36 ++++++
 t/t3003-ls-files-narrow-match.sh      |   39 ++++++
 t/t3003/1                             |    3 +
 t/t3003/12                            |    6 +
 t/t3003/clone-escape                  |    4 +
 t/t3003/cur-12                        |    2 +
 t/t3003/root-sub-1                    |    1 +
 t/t3003/slash-1                       |    1 +
 t/t3003/sub-1                         |    2 +
 t/t3003/sub-only                      |    3 +
 t/t3003/subsub-slash                  |    3 +
 t/t3004-ls-files-sparse.sh            |   40 ++++++
 t/t3004/cached.expected               |    5 +
 t/t3004/deleted.expected              |    1 +
 t/t3004/everything.expected           |   10 ++
 t/t3004/modified.expected             |    2 +
 t/t3004/no-checkout.expected          |    2 +
 t/t3004/orphaned-no-checkout.expected |    3 +
 t/t3004/orphaned.expected             |    1 +
 t/t3004/others.expected               |    2 +
 t/t3004/sparse-cached.expected        |    3 +
 t/t3004/sparse-everything.expected    |   11 ++
 t/t5703-clone-narrow.sh               |   39 ++++++
 test-index-version.c                  |   14 ++
 unpack-trees.c                        |  210 ++++++++++++++++++++++++++++++++-
 unpack-trees.h                        |   22 ++++
 wt-status.c                           |   39 ++++++
 wt-status.h                           |    1 +
 46 files changed, 1047 insertions(+), 50 deletions(-)
 create mode 100755 t/t2011-checkout-sparse.sh
 create mode 100755 t/t2104-update-index-no-checkout.sh
 create mode 100755 t/t3003-ls-files-narrow-match.sh
 create mode 100644 t/t3003/1
 create mode 100644 t/t3003/12
 create mode 100644 t/t3003/clone-escape
 create mode 100644 t/t3003/cur-12
 create mode 100644 t/t3003/root-sub-1
 create mode 100644 t/t3003/slash-1
 create mode 100644 t/t3003/sub
 create mode 100644 t/t3003/sub-1
 create mode 100644 t/t3003/sub-only
 create mode 100644 t/t3003/subsub-slash
 create mode 100755 t/t3004-ls-files-sparse.sh
 create mode 100644 t/t3004/cached.expected
 create mode 100644 t/t3004/deleted.expected
 create mode 100644 t/t3004/everything.expected
 create mode 100644 t/t3004/modified.expected
 create mode 100644 t/t3004/no-checkout.expected
 create mode 100644 t/t3004/orphaned-no-checkout.expected
 create mode 100644 t/t3004/orphaned.expected
 create mode 100644 t/t3004/others.expected
 create mode 100644 t/t3004/sparse-cached.expected
 create mode 100644 t/t3004/sparse-everything.expected
 create mode 100755 t/t5703-clone-narrow.sh
 create mode 100644 test-index-version.c
Next: Nguyễn Thái Ngọc Duy
Message 1 of 37 in “Sparse checkout”
  1. 00/14 Sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  2. 01/14 Extend index to save more flagsNguyễn Thái Ngọc Duy, Sep 20, 2008
  3. 02/14 Introduce CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 20, 2008
  4. 03/14 ls-files: add options to support sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  5. 04/14 update-index: refactor mark_valid() in preparation for new optionsNguyễn Thái Ngọc Duy, Sep 20, 2008
  6. 05/14 update-index: add --checkout/--no-checkout to update CE_NO_CHECKOUT bitNguyễn Thái Ngọc Duy, Sep 20, 2008
  7. 06/14 ls-files: Add tests for --sparse and friendsNguyễn Thái Ngọc Duy, Sep 20, 2008
  8. 07/14 Prevent diff machinery from examining worktree outside sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  9. 08/14 checkout_entry(): CE_NO_CHECKOUT on checked out entries.Nguyễn Thái Ngọc Duy, Sep 20, 2008
  10. 09/14 grep: skip files outside sparse checkout areaNguyễn Thái Ngọc Duy, Sep 20, 2008
  11. 10/14 ls-files: support "sparse patterns", used to form sparse checkout areasNguyễn Thái Ngọc Duy, Sep 20, 2008
  12. 11/14 unpack_trees(): add support for sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  13. 12/14 clone: support sparse checkout with --narrow-path optionNguyễn Thái Ngọc Duy, Sep 20, 2008
  14. 13/14 checkout: add new options to support sparse checkoutNguyễn Thái Ngọc Duy, Sep 20, 2008
  15. 14/14 wt-status: Show orphaned entries in "git status" outputNguyễn Thái Ngọc Duy, Sep 20, 2008
  16. Jakub NarebskiSep 20, 2008
  17. Junio C HamanoSep 20, 2008
  18. Junio C HamanoSep 20, 2008
  19. Nguyen Thai Ngoc DuySep 21, 2008
  20. Jakub NarebskiSep 21, 2008
  21. Santi BéjarSep 20, 2008
  22. Nguyen Thai Ngoc DuySep 20, 2008
  23. Jakub NarebskiSep 20, 2008
  24. Nguyen Thai Ngoc DuySep 20, 2008
  25. Jakub NarebskiSep 20, 2008
  26. Uwe Kleine-KönigSep 20, 2008
  27. Nguyen Thai Ngoc DuySep 20, 2008
  28. Junio C HamanoSep 20, 2008
  29. Nguyen Thai Ngoc DuySep 21, 2008
  30. Jakub NarebskiSep 21, 2008
  31. Nguyen Thai Ngoc DuySep 21, 2008
  32. Jakub NarebskiSep 21, 2008
  33. Santi BéjarSep 23, 2008
  34. Nguyen Thai Ngoc DuySep 23, 2008
  35. Nguyen Thai Ngoc DuySep 26, 2008
  36. Junio C HamanoSep 20, 2008
  37. Santi BéjarSep 23, 2008

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.