All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.