From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: szeder.dev@gmail.com, newren@gmail.com, jon@jonsimons.org,
Derrick Stolee <dstolee@microsoft.com>,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v3 0/2] sparse-checkout: list directories in cone mode
Date: Mon, 30 Dec 2019 15:33:11 +0000 [thread overview]
Message-ID: <pull.500.v3.git.1577719993.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.500.v2.git.1577472469.gitgitgadget@gmail.com>
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 <dstolee@microsoft.com>
- 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
+ folder1
--
gitgitgadget
next prev parent reply other threads:[~2019-12-30 15:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-26 20:49 [PATCH 0/1] sparse-checkout: list directories in cone mode Derrick Stolee via GitGitGadget
2019-12-26 20:49 ` [PATCH 1/1] sparse-checkout: list folders " Derrick Stolee via GitGitGadget
2019-12-26 21:17 ` Junio C Hamano
2019-12-27 14:05 ` Derrick Stolee
2019-12-27 15:52 ` Elijah Newren
2019-12-27 18:47 ` [PATCH v2 0/2] sparse-checkout: list directories " Derrick Stolee via GitGitGadget
2019-12-27 18:47 ` [PATCH v2 1/2] sparse-checkout: list folders " Derrick Stolee via GitGitGadget
2019-12-27 21:37 ` Elijah Newren
2019-12-27 18:47 ` [PATCH v2 2/2] sparse-checkout: document interactions with submodules Derrick Stolee via GitGitGadget
2019-12-27 20:20 ` Eric Sunshine
2019-12-30 13:11 ` Derrick Stolee
2019-12-27 21:46 ` Elijah Newren
2019-12-27 22:33 ` Junio C Hamano
2019-12-30 15:33 ` Derrick Stolee via GitGitGadget [this message]
2019-12-30 15:33 ` [PATCH v3 1/2] sparse-checkout: list directories in cone mode Derrick Stolee via GitGitGadget
2019-12-30 15:33 ` [PATCH v3 2/2] sparse-checkout: document interactions with submodules Derrick Stolee via GitGitGadget
2019-12-30 17:18 ` [PATCH v3 0/2] sparse-checkout: list directories in cone mode Elijah Newren
2019-12-27 21:47 ` [PATCH 0/1] " Elijah Newren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.500.v3.git.1577719993.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jon@jonsimons.org \
--cc=newren@gmail.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).