sparse-checkout: list directories in cone mode
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v3 Latest2 patches 1 replyIn review
- v22 patches 5 repliesSuperseded
- v11 patch 4 repliesSuperseded
Patches in v3 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/2 | sparse-checkout: list directories in cone modeDocumentation/ builtin/ t/ | +42 | 0 replies | |
| 2/2 | sparse-checkout: document interactions with submodulesDocumentation/ t/ | +38 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.
Cover letter [PATCH v3 0/2] sparse-checkout: list directories in cone mode
When in cone mode, "git sparse-checkout set" takes a list of folders and constructs an ordered list of patterns for the sparse-checkout file. The "git sparse-checkout list" subcommand outputs the contents of the sparse-checkout file in a very basic way.
This patch changes the behavior of "git sparse-checkout list" when core.sparseCheckoutCone=true. It will output the folders that were used in "git sparse-checkout set" to create the patterns, instead of the patterns themselves.
I believe this was requested in the initial review, but I cannot find that message now.
I was going to include this as part of a longer follow-up series, but I think this may be worth considering for the 2.25.0 release. Hence, it is included by itself.
Update in V2:
* Fixed typos/word choice in commit message.
* Added a second commit including clarification on interactions with submodules.
Thanks, -Stolee
Derrick Stolee (2):
sparse-checkout: list directories in cone mode
sparse-checkout: document interactions with submodules
Documentation/git-sparse-checkout.txt | 21 ++++++++++++++- builtin/sparse-checkout.c | 21 +++++++++++++++ t/t1091-sparse-checkout-builtin.sh | 39 +++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-)
base-commit: 761e3d26bbe44c51f83c4f1ad198461f57029ebd
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-500%2Fderrickstolee%2Fsparse-checkout-list-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-500/derrickstolee/sparse-checkout-list-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/500
Range-diff vs v2:
1: d6f4f40486 ! 1: 7d4295bd06 sparse-checkout: list folders in cone mode
@@ -1,17 +1,17 @@
Author: Derrick Stolee <[email protected]>
- sparse-checkout: list folders in cone mode
+ sparse-checkout: list directories in cone mode
When core.sparseCheckoutCone is enabled, the 'git sparse-checkout set'
- command takes a list of folders as input, then creates an ordered
- list of sparse-checkout patterns such that those folders are
- recursively included and all sibling entries along the parent folders
+ command takes a list of directories as input, then creates an ordered
+ list of sparse-checkout patterns such that those directories are
+ recursively included and all sibling entries along the parent directories
are also included. Listing the patterns is less user-friendly than the
- folders themselves.
+ directories themselves.
In cone mode, and as long as the patterns match the expected cone-mode pattern types, change the output of 'git sparse-checkout list' to only
- show the folders that created the patterns.
+ show the directories that created the patterns.
With this change, the following piped commands would not change the working directory:
@@ -41,8 +41,8 @@
based algorithms to compute inclusion in the sparse-checkout.
+In the cone mode case, the git sparse-checkout list subcommand will list the
-+folders that define the recursive patterns. For the example sparse-checkout file -+above, the output is as follows:
++directories that define the recursive patterns. For the example sparse-checkout ++file above, the output is as follows:
+
+--------------------------
+$ git sparse-checkout list
2: 331bb7d6fb ! 2: 74bbd0f84d sparse-checkout: document interactions with submodules
@@ -2,11 +2,6 @@
sparse-checkout: document interactions with submodules
- Junio asked what the behavior is between the sparse-checkout feature
- and the submodule feature. The sparse-checkout builtin has not changed
- the way these features interact, but we may as well document it in
- the builtin docs.
-
Using 'git submodule (init|deinit)' a user can select a subset of
submodules to populate. This behaves very similar to the sparse-checkout
feature, but those directories contain their own .git directory
@@ -61,14 +56,14 @@
+ git sparse-checkout set folder1
+ ) &&
+ list_files super >dir &&
-+ cat >expect <<-EOF &&
++ cat >expect <<-\EOF &&
+ a
+ folder1
+ modules
+ EOF
+ test_cmp expect dir &&
+ list_files super/modules/child >dir &&
-+ cat >expect <<-EOF &&
++ cat >expect <<-\EOF &&
+ a
+ deep
+ folder1Signature · 1 line
gitgitgadget