Re: Git Test Coverage Report (October 11)

2019-10-23 Thread Derrick Stolee
On 10/23/2019 1:00 PM, Torsten Bögershausen wrote: > On Fri, Oct 11, 2019 at 09:33:11AM -0400, Derrick Stolee wrote: >> Here is today's test coverage report. The usual report format is >> available online [1], [2]. The report listed below is a new format >> that group

[PATCH v2 2/2] commit-graph: fix writing first commit-graph during fetch

2019-10-23 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The previous commit includes a failing test for an issue around fetch.writeCommitGraph and fetching in a repo with a submodule. Here, we fix that bug and set the test to "test_expect_success". The prolem arises with this set of commands when the remote repo

[PATCH v2 0/2] [v2.24.0-rc0 BUG] fetch.writeCommitGraph fails on first fetch

2019-10-23 Thread Derrick Stolee via GitGitGadget
as I could for how I investigated the problem and why I think this is the right solution. I added details that have come from the on-list discussion, including what the submodule code is doing and why REACHABLE is no longer used in commit-reach.c. Thanks, -Stolee Derrick Stolee (2): t5510

[PATCH v2 1/2] t5510-fetch.sh: demonstrate fetch.writeCommitGraph bug

2019-10-23 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee While dogfooding, Johannes found a bug in the fetch.writeCommitGraph config behavior. His example initially happened during a clone with --recurse-submodules, we found that this happens with the first fetch after cloning a repository that contains a submodule: $ git

Re: [PATCH v5 13/17] read-tree: show progress by default

2019-10-23 Thread Derrick Stolee
On 10/22/2019 11:48 PM, Junio C Hamano wrote: > Derrick Stolee writes: > >>> I'm slightly wary of changing the output of plumbing commands >>> like this. If a script wants progress output it can already get >>> it by passing --verbose. With this change a scr

Re: [PATCH 1/1] commit-graph: fix writing first commit-graph during fetch

2019-10-22 Thread Derrick Stolee
On 10/22/2019 7:35 PM, SZEDER Gábor wrote: > On Tue, Oct 22, 2019 at 05:45:54PM -0400, Jeff King wrote: >> Puzzling... > > Submodules? > > $ cd ~/src/git/ > $ git quotelog 86cfd61e6b > 86cfd61e6b (sha1dc: optionally use sha1collisiondetection as a submodule, > 2017-07-01) > $ git init

[PATCH v3 0/1] ci: update caskroom/cask/perforce to new location

2019-10-22 Thread Derrick Stolee via GitGitGadget
s try harder if `brew cask install perforce` @@ -31,6 +46,7 @@ https://dev.azure.com/gitgitgadget/git/_build?definitionId=11&_a=summary will be finished once the next Perforce upgrade comes around. +Helped-by: SZEDER Gábor Signed-off-by: Johannes Schindelin Signed-off-by: Derrick Stolee -- gitgitgadget

Re: is commitGraph useful on the server side?

2019-10-22 Thread Derrick Stolee
On 10/22/2019 12:51 PM, Konstantin Ryabitsev wrote: > Hi, all: > > I've read the docs on commitGraph and it's not 100% clear to me if turning it > on and generating commit graphs would be useful on the server-side. I know > it's going to be enabled by default and automatically generated whenever

[PATCH 0/1] [v2.24.0-rc0 BUG] fetch.writeCommitGraph fails on first fetch

2019-10-22 Thread Derrick Stolee via GitGitGadget
Derrick Stolee (1): commit-graph: fix writing first commit-graph during fetch commit-graph.c | 11 +++ commit-reach.c | 1 - object.h | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) base-commit: d966095db01190a2196e31195ea6fa0c722aa732 Published-As: https://github.com

[PATCH 1/1] commit-graph: fix writing first commit-graph during fetch

2019-10-22 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee While dogfooding, Johannes found a bug in the fetch.writeCommitGraph config behavior. While his example initially happened during a clone with --recurse-submodules, we found that it is actually a problem with the first fetch after a new clone and no existing commit-graph

Re: [ANNOUNCE] Git v2.24.0-rc0

2019-10-21 Thread Derrick Stolee
(dropping some of the other aliases from this reply) I ran a few of the performance tests against the Linux repository using v2.22.0, v2.23.0, and the new v2.24.0-rc0. I thought it worth pointing out that the drastic performance improvements are due to turning on the commit-graph by default. I had

[Git Developer Blog] [Blog Post] Updates to the Git Commit Graph Feature

2019-10-21 Thread Derrick Stolee
who stick to the end will learn something valuable. Signed-off-by: Derrick Stolee --- Inspired by Emily's first contribution in the space [1], I now finished this post that I've been working on here-and-there since Git 2.23.0. Now that 2.24.0 is imminent, the post is even more relevan

Re: [Git Developer Blog] [PATCH] post: a tour of git's object types

2019-10-21 Thread Derrick Stolee
On 10/18/2019 8:20 PM, Emily Shaffer wrote: > An overview of what Git object types mean and how they loosely translate > into filesystem types users are already familiar with is a good start to > making Git's internals less scary to users. This post is an interactive > overview of the various types

Re: [PATCH v5 13/17] read-tree: show progress by default

2019-10-21 Thread Derrick Stolee
On 10/21/2019 11:04 AM, Phillip Wood wrote: > Hi Stolee > > On 21/10/2019 14:56, Derrick Stolee via GitGitGadget wrote: >> From: Derrick Stolee >> >> The read-tree builtin has a --verbose option that signals to show >> progress and other data while updating the

Git Test Coverage Report (v2.24.0-rc0)

2019-10-21 Thread Derrick Stolee
043722ddc1 next954a862665455a25876e1113bd865d43a26facce master d966095db01190a2196e31195ea6fa0c722aa732 master@{1} origin/maint Uncovered code in 'pu' not in 'jch' Commits introducing uncovered code: Derrick Stolee 2a53e0ba clone

[PATCH v5 04/17] sparse-checkout: 'set' subcommand

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns as arguments and writes them to the sparse-checkout file. Then, it updates the working directory using 'git read-tree -mu HEAD'. The 'set' subcommand will replace the entire c

[PATCH v5 17/17] sparse-checkout: cone mode should not interact with .gitignore

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee During the development of the sparse-checkout "cone mode" feature, an incorrect placement of the initializer for "use_cone_patterns = 1" caused warnings to show up when a .gitignore file was present with non-cone-mode patterns. This was fixed in

[PATCH v5 03/17] clone: add --sparse mode

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When someone wants to clone a large repository, but plans to work using a sparse-checkout file, they either need to do a full checkout first and then reduce the patterns they included, or clone with --no-checkout, set up their patterns, and then run a checkout manually. This

[PATCH v5 02/17] sparse-checkout: create 'init' subcommand

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee Getting started with a sparse-checkout file can be daunting. Help users start their sparse enlistment using 'git sparse-checkout init'. This will set 'core.sparseCheckout=true' in their config, write an initial set of patterns to the sparse-checkout fi

[PATCH v5 12/17] unpack-trees: add progress to clear_ce_flags()

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When a large repository has many sparse-checkout patterns, the process for updating the skip-worktree bits can take long enough that a user gets confused why nothing is happening. Update the clear_ce_flags() method to write progress. Signed-off-by: Derrick Stolee

[PATCH v5 16/17] sparse-checkout: write using lockfile

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If two 'git sparse-checkout set' subcommands are launched at the same time, the behavior can be unexpected as they compete to write the sparse-checkout file and update the working directory. Take a lockfile around the writes to the sparse-checkout file. In additio

[PATCH v5 13/17] read-tree: show progress by default

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The read-tree builtin has a --verbose option that signals to show progress and other data while updating the index. Update this to be on by default when stderr is a terminal window. This will help tools like 'git sparse-checkout' to automatically benefit fro

[PATCH v5 15/17] sparse-checkout: update working directory in-process

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout builtin used 'git read-tree -mu HEAD' to update the skip-worktree bits in the index and to update the working directory. This extra process is overly complex, and prone to failure. It also requires that we write our changes to the sparse-che

[PATCH v5 10/17] sparse-checkout: init and set in cone mode

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee To make the cone pattern set easy to use, update the behavior of 'git sparse-checkout [init|set]'. Add '--cone' flag to 'git sparse-checkout init' to set the config option 'core.sparseCheckoutCone=true'. When running 'git s

[PATCH v5 08/17] sparse-checkout: add 'cone' mode

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature can have quadratic performance as the number of patterns and number of entries in the index grow. If there are 1,000 patterns and 1,000,000 entries, this time can be very significant. Create a new Boolean config option, core.sparseCheckoutCone

[PATCH v5 14/17] sparse-checkout: sanitize for nested folders

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If a user provides folders A/ and A/B/ for inclusion in a cone-mode sparse-checkout file, the parsing logic will notice that A/ appears both as a "parent" type pattern and as a "recursive" type pattern. This is unexpected and hence will complain via a w

[PATCH v5 11/17] unpack-trees: hash less in cone mode

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature in "cone mode" can use the fact that the recursive patterns are "connected" to the root via parent patterns to decide if a directory is entirely contained in the sparse-checkout or entirely removed. In these cases, we can sk

[PATCH v5 05/17] sparse-checkout: add '--stdin' option to set subcommand

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns and places them in the sparse-checkout file. Then, it updates the working directory to match those patterns. For a large list of patterns, the command-line call can get very cumbersome. Add a '

[PATCH v5 00/17] New sparse-checkout builtin and "cone" mode

2019-10-21 Thread Derrick Stolee via GitGitGadget
/docs/git-read-tree#_sparse_checkoutSparse-checkout documentation in git-read-tree. [2] https://stackoverflow.com/a/4909267/127088Is it possible to do a sparse checkout without checking out the whole repository first? [3] http://www.marcoyuen.com/articles/2016/06/07/git-sparse.htmlA blog post of a user

[PATCH v5 09/17] sparse-checkout: use hashmaps for cone patterns

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The parent and recursive patterns allowed by the "cone mode" option in sparse-checkout are restrictive enough that we can avoid using the regex parsing. Everything is based on prefix matches, so we can use hashsets to store the prefixes from the sparse-checkout

[PATCH v5 06/17] sparse-checkout: create 'disable' subcommand

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The instructions for disabling a sparse-checkout to a full working directory are complicated and non-intuitive. Add a subcommand, 'git sparse-checkout disable', to perform those steps for the user. Signed-off-by: Derrick Stolee --- Documentation/git-sparse-ch

[PATCH v5 01/17] sparse-checkout: create builtin with 'list' subcommand

2019-10-21 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature is mostly hidden to users, as its only documentation is supplementary information in the docs for 'git read-tree'. In addition, users need to know how to edit the .git/info/sparse-checkout file with the right patterns, then run the a

Re: [PATCH v4 01/17] sparse-checkout: create builtin with 'list' subcommand

2019-10-21 Thread Derrick Stolee
On 10/16/2019 3:00 PM, Elijah Newren wrote: > On Tue, Oct 15, 2019 at 6:56 AM Derrick Stolee via GitGitGadget > wrote: >> +DESCRIPTION >> +--- >> + >> +Initialize and modify the sparse-checkout configuration, which reduces >> +the checkout to a s

Re: [PATCH v4 00/17] New sparse-checkout builtin and "cone" mode

2019-10-21 Thread Derrick Stolee
On 10/17/2019 7:53 PM, Jon Simons wrote: > On 10/15/19 6:55 AM, Derrick Stolee via GitGitGadget wrote: >> V4 UPDATE: Rebased on latest master to include ew/hashmap and >> ds/include-exclude in the base. > > I did a partial review of the v4 patches out of curiosity and

Re: [PATCH v4 15/17] sparse-checkout: update working directory in-process

2019-10-21 Thread Derrick Stolee
On 10/18/2019 4:40 PM, SZEDER Gábor wrote: > On Fri, Oct 18, 2019 at 10:24:21PM +0200, SZEDER Gábor wrote: >> On Tue, Oct 15, 2019 at 01:56:02PM +, Derrick Stolee via GitGitGadget >> wrote: >>> From: Derrick Stolee >>> >>> The sparse-checkout built

Re: [PATCH v4 09/17] sparse-checkout: use hashmaps for cone patterns

2019-10-21 Thread Derrick Stolee
On 10/18/2019 11:31 AM, SZEDER Gábor wrote: > On Tue, Oct 15, 2019 at 01:55:56PM +0000, Derrick Stolee via GitGitGadget > wrote: >> Running 'git read-tree -mu HEAD' on this file had the following >> performance: >> >> core.sparseCheckout=false: 0.21

Re: [PATCH v4 01/17] sparse-checkout: create builtin with 'list' subcommand

2019-10-21 Thread Derrick Stolee
On 10/18/2019 12:07 PM, SZEDER Gábor wrote: > On Tue, Oct 15, 2019 at 01:55:48PM +0000, Derrick Stolee via GitGitGadget > wrote: >> From: Derrick Stolee >> >> The sparse-checkout feature is mostly hidden to users, as its >> only documentation is supplementary infor

[PATCH v2 0/1] ci: update caskroom/cask/perforce to new location

2019-10-17 Thread Derrick Stolee via GitGitGadget
=summary +will be finished once the next Perforce upgrade comes around. Signed-off-by: Johannes Schindelin Signed-off-by: Derrick Stolee @@ -35,7 +41,11 @@ test -z "$BREW_INSTALL_PACKAGES" || brew install $BREW_INSTALL_PACKAGES

Re: [PATCH v3 08/13] graph: tidy up display of left-skewed merges

2019-10-17 Thread Derrick Stolee
On 10/16/2019 12:00 AM, Junio C Hamano wrote: > "James Coglan via GitGitGadget" writes: > >> This effect is applied to both "normal" two-parent merges, and to >> octopus merges. It also reduces the vertical space needed for pre-commit >> lines, as the merge occupies one less column than usual. >>

Re: [PATCH v3 07/13] graph: example of graph output that can be simplified

2019-10-17 Thread Derrick Stolee
On 10/15/2019 7:47 PM, James Coglan via GitGitGadget wrote: > diff --git a/t/t4215-log-skewed-merges.sh b/t/t4215-log-skewed-merges.sh > new file mode 100755 > index 00..4582ba066a > --- /dev/null > +++ b/t/t4215-log-skewed-merges.sh > @@ -0,0 +1,43 @@ > +#!/bin/sh > + > +test_description='

[PATCH 0/1] ci: update caskroom/cask/perforce to new location

2019-10-15 Thread Derrick Stolee via GitGitGadget
Running CI on Mac OS X in Azure Pipelines is currently broken due to a moved homebrew package. Thanks, -Stolee Johannes Schindelin (1): ci(osx): use new location of the `perforce` cask ci/install-dependencies.sh | 1 + 1 file changed, 1 insertion(+) base-commit: 108b97dc372828f0e72e56bbb40c

[PATCH v4 02/17] sparse-checkout: create 'init' subcommand

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee Getting started with a sparse-checkout file can be daunting. Help users start their sparse enlistment using 'git sparse-checkout init'. This will set 'core.sparseCheckout=true' in their config, write an initial set of patterns to the sparse-checkout fi

[PATCH v4 05/17] sparse-checkout: add '--stdin' option to set subcommand

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns and places them in the sparse-checkout file. Then, it updates the working directory to match those patterns. For a large list of patterns, the command-line call can get very cumbersome. Add a '

[PATCH v4 08/17] sparse-checkout: add 'cone' mode

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature can have quadratic performance as the number of patterns and number of entries in the index grow. If there are 1,000 patterns and 1,000,000 entries, this time can be very significant. Create a new Boolean config option, core.sparseCheckoutCone

[PATCH v4 01/17] sparse-checkout: create builtin with 'list' subcommand

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature is mostly hidden to users, as its only documentation is supplementary information in the docs for 'git read-tree'. In addition, users need to know how to edit the .git/info/sparse-checkout file with the right patterns, then run the a

[PATCH v4 15/17] sparse-checkout: update working directory in-process

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout builtin used 'git read-tree -mu HEAD' to update the skip-worktree bits in the index and to update the working directory. This extra process is overly complex, and prone to failure. It also requires that we write our changes to the sparse-che

[PATCH v4 16/17] sparse-checkout: write using lockfile

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If two 'git sparse-checkout set' subcommands are launched at the same time, the behavior can be unexpected as they compete to write the sparse-checkout file and update the working directory. Take a lockfile around the writes to the sparse-checkout file. In additio

[PATCH v4 09/17] sparse-checkout: use hashmaps for cone patterns

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The parent and recursive patterns allowed by the "cone mode" option in sparse-checkout are restrictive enough that we can avoid using the regex parsing. Everything is based on prefix matches, so we can use hashsets to store the prefixes from the sparse-checkout

[PATCH v4 11/17] unpack-trees: hash less in cone mode

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature in "cone mode" can use the fact that the recursive patterns are "connected" to the root via parent patterns to decide if a directory is entirely contained in the sparse-checkout or entirely removed. In these cases, we can sk

[PATCH v4 13/17] read-tree: show progress by default

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The read-tree builtin has a --verbose option that signals to show progress and other data while updating the index. Update this to be on by default when stderr is a terminal window. This will help tools like 'git sparse-checkout' to automatically benefit fro

[PATCH v4 17/17] sparse-checkout: cone mode should not interact with .gitignore

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee During the development of the sparse-checkout "cone mode" feature, an incorrect placement of the initializer for "use_cone_patterns = 1" caused warnings to show up when a .gitignore file was present with non-cone-mode patterns. This was fixed in

[PATCH v4 10/17] sparse-checkout: init and set in cone mode

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee To make the cone pattern set easy to use, update the behavior of 'git sparse-checkout [init|set]'. Add '--cone' flag to 'git sparse-checkout init' to set the config option 'core.sparseCheckoutCone=true'. When running 'git s

[PATCH v4 12/17] unpack-trees: add progress to clear_ce_flags()

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When a large repository has many sparse-checkout patterns, the process for updating the skip-worktree bits can take long enough that a user gets confused why nothing is happening. Update the clear_ce_flags() method to write progress. Signed-off-by: Derrick Stolee

[PATCH v4 14/17] sparse-checkout: sanitize for nested folders

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If a user provides folders A/ and A/B/ for inclusion in a cone-mode sparse-checkout file, the parsing logic will notice that A/ appears both as a "parent" type pattern and as a "recursive" type pattern. This is unexpected and hence will complain via a w

[PATCH v4 06/17] sparse-checkout: create 'disable' subcommand

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The instructions for disabling a sparse-checkout to a full working directory are complicated and non-intuitive. Add a subcommand, 'git sparse-checkout disable', to perform those steps for the user. Signed-off-by: Derrick Stolee --- Documentation/git-sparse-ch

[PATCH v4 00/17] New sparse-checkout builtin and "cone" mode

2019-10-15 Thread Derrick Stolee via GitGitGadget
com/a/4909267/127088Is it possible to do a sparse checkout without checking out the whole repository first? [3] http://www.marcoyuen.com/articles/2016/06/07/git-sparse.htmlA blog post of a user's extra "git-sparse" helper. [4] https://github.com/git/git/compare/fc5fd706ff733392053e6180086a4

[PATCH v4 04/17] sparse-checkout: 'set' subcommand

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns as arguments and writes them to the sparse-checkout file. Then, it updates the working directory using 'git read-tree -mu HEAD'. The 'set' subcommand will replace the entire c

[PATCH v4 03/17] clone: add --sparse mode

2019-10-15 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When someone wants to clone a large repository, but plans to work using a sparse-checkout file, they either need to do a full checkout first and then reduce the patterns they included, or clone with --no-checkout, set up their patterns, and then run a checkout manually. This

Re: ds/sparse-cone, was Re: What's cooking in git.git (Oct 2019, #03; Fri, 11)

2019-10-15 Thread Derrick Stolee
On 10/15/2019 3:11 AM, Eric Wong wrote: > Junio C Hamano wrote: >> Eric Wong writes: >> >>> I just took a brief look, but that appears to leak memory. >>> >>> "hashmap_free(var, 1)" should be replaced with >>> "hashmap_free_entries(var, struct foo, member)" >>> >>> Only "hashmap_free(var, 0)" can

Re: [PATCH v3 16/17] sparse-checkout: write using lockfile

2019-10-14 Thread Derrick Stolee
On 10/12/2019 6:59 PM, Elijah Newren wrote: > On Mon, Oct 7, 2019 at 1:08 PM Derrick Stolee via GitGitGadget > wrote: >> >> From: Derrick Stolee >> >> If two 'git sparse-checkout set' subcommands are launched at the >> same time, the behavior can

Re: [PATCH v3 15/17] sparse-checkout: update working directory in-process

2019-10-14 Thread Derrick Stolee
On 10/12/2019 6:57 PM, Elijah Newren wrote: > On Mon, Oct 7, 2019 at 1:08 PM Derrick Stolee via GitGitGadget > wrote: >> >> From: Derrick Stolee >> >> The sparse-checkout builtin used 'git read-tree -mu HEAD' to update the >> skip-worktree bits in

Re: [PATCH v3 13/17] read-tree: show progress by default

2019-10-14 Thread Derrick Stolee
On 10/12/2019 6:16 PM, Elijah Newren wrote: > On Mon, Oct 7, 2019 at 1:08 PM Derrick Stolee via GitGitGadget > wrote: >> >> From: Derrick Stolee >> >> The read-tree builtin has a --verbose option that signals to show >> progress and other data while updating t

Re: [PATCH v3 05/17] sparse-checkout: add '--stdin' option to set subcommand

2019-10-14 Thread Derrick Stolee
On 10/11/2019 6:27 PM, Elijah Newren wrote: > On Mon, Oct 7, 2019 at 1:08 PM Derrick Stolee via GitGitGadget > wrote: >> >> From: Derrick Stolee >> >> The 'git sparse-checkout set' subcommand takes a list of patterns >> and places them in the sparse-

Re: [PATCH v3 02/17] sparse-checkout: create 'init' subcommand

2019-10-14 Thread Derrick Stolee
On 10/11/2019 6:14 PM, Elijah Newren wrote: > On Mon, Oct 7, 2019 at 1:08 PM Derrick Stolee via GitGitGadget > wrote: >> ++ >> +The init subcommand also enables the 'extensions.worktreeConfig' setting >> +and sets the `core.sparseCheckout` setting in the workt

Re: [PATCH 07/11] graph: commit and post-merge lines for left-skewed merges

2019-10-14 Thread Derrick Stolee
On 10/14/2019 11:38 AM, James Coglan wrote: > On 13/10/2019 07:56, Jeff King wrote: >> On Fri, Oct 11, 2019 at 06:04:21PM +0100, James Coglan wrote: >> I should have noticed in your earlier commits, but why don't you keep the output inside the test suite? You can start with "cat >expect <

Re: [PATCH 06/11] graph: tidy up display of left-skewed merges

2019-10-11 Thread Derrick Stolee
On 10/11/2019 12:50 PM, James Coglan wrote: > On 10/10/2019 18:19, Derrick Stolee wrote: >> On 10/10/2019 12:13 PM, James Coglan via GitGitGadget wrote: >>> +++ b/t/t4215-log-skewed-merges.sh >>> @@ -0,0 +1,42 @@ >>> +#!/bin/sh >>> + >>&g

Git Test Coverage Report (October 11)

2019-10-11 Thread Derrick Stolee
Brian Downing 43fe901b compat: Add simplified merge sort implementation from glibc stable-qsort.c 43fe901b 59) msort_with_tmp(b, n, s, cmp, tmp); 43fe901b 60) free(tmp); brian m. carlsonfabec2c5 builtin/receive-pack: switch to use the_hash_algo builtin/receive-pack.c fabec2c5 433) the_h

Re: [PATCH v2] send-pack: never fetch when checking exclusions

2019-10-11 Thread Derrick Stolee
On 10/11/2019 2:12 AM, Jeff King wrote: > On Tue, Oct 08, 2019 at 11:37:39AM -0700, Jonathan Tan wrote: > >> When building the packfile to be sent, send_pack() is given a list of >> remote refs to be used as exclusions. For each ref, it first checks if >> the ref exists locally, and if it does, pa

Re: [PATCH 01/11] graph: automatically track visible width of `strbuf`

2019-10-10 Thread Derrick Stolee
On 10/10/2019 7:05 PM, Denton Liu wrote: > Hi Dscho, > > On Thu, Oct 10, 2019 at 11:07:35PM +0200, Johannes Schindelin wrote: >> Hi James, >> >> On Thu, 10 Oct 2019, James Coglan via GitGitGadget wrote: >> >>> From: James Coglan >>> >>> All the output functions in `graph.c` currently keep trac

Re: [PATCH 00/11] Improve the readability of log --graph output

2019-10-10 Thread Derrick Stolee
On 10/10/2019 12:13 PM, James Coglan via GitGitGadget wrote: > This series of patches are designed to improve the output of the log --graph > command; their effect can be summed up in the following diagram: > > BeforeAfter > --- > > * >

Re: [PATCH 07/11] graph: commit and post-merge lines for left-skewed merges

2019-10-10 Thread Derrick Stolee
On 10/10/2019 12:13 PM, James Coglan via GitGitGadget wrote: > From: James Coglan > > Following the introduction of "left-skewed" merges, which are merges > whose first parent fuses with another edge to its left, we have some > more edge cases to deal with in the display of commit and post-merge

Re: [PATCH 06/11] graph: tidy up display of left-skewed merges

2019-10-10 Thread Derrick Stolee
On 10/10/2019 12:13 PM, James Coglan via GitGitGadget wrote: > From: James Coglan > > Currently, when we display a merge whose first parent is already present > in a column to the left of the merge commit, we display the first parent > as a veritcal pipe `|` in the GRAPH_POST_MERGE line and then

Re: [PATCH 3/6] index-pack: remove redundant child field

2019-10-10 Thread Derrick Stolee
On 10/9/2019 7:44 PM, Jonathan Tan wrote: > Instead, recompute ancestry if we ever need to reclaim memory. I find this message lacking in important details: 1. Where do we recompute ancestry? 2. What are the performance implications of this change? 3. Why is it important that you construct a stac

Re: How to find the commit that erase a change

2019-10-09 Thread Derrick Stolee
On 10/8/2019 11:51 PM, wuzhouhui wrote: >> -Original Messages- >> From: "Junio C Hamano" >> Sent Time: 2019-10-09 11:02:44 (Wednesday) >> To: wuzhouhui >> Cc: git@vger.kernel.org, cuif...@sugon.com >> Subject: Re: How to find the commit that erase a change >> >> wuzhouhui writes: >> >>>

Re: I just pulled, and git log --graph does not show all

2019-10-09 Thread Derrick Stolee
On 10/9/2019 2:13 AM, Uwe Brauer wrote: > >> On Tue, Sep 24, 2019 at 12:22:27PM +0200, Uwe Brauer wrote: > >> I hear you: I had a brief encounter with Mercurial not that long ago, >> and there were several things that didn't work the way I expected (or >> rather: the way I got u

Re: [PATCH v3 00/20] hashmap bug/safety/ease-of-use fixes

2019-10-08 Thread Derrick Stolee
On 10/6/2019 7:30 PM, Eric Wong wrote: > v3 changes: > - use __typeof__ to avoid invalid clang warning on uninitialized var > - formatting fixes recommended by Stolee > - add Reviewed-by for Stolee > - add patch 20 to update docs to drop first member requirement > > Range-diff against v2: I scann

Re: [PATCH v3 00/20] hashmap bug/safety/ease-of-use fixes

2019-10-08 Thread Derrick Stolee
On 10/8/2019 4:58 AM, Johannes Schindelin wrote: > Hi Eric & Junio, > > On Sun, 6 Oct 2019, Eric Wong wrote: > >> v3 changes: >> - use __typeof__ to avoid invalid clang warning on uninitialized var >> - formatting fixes recommended by Stolee >> - add Reviewed-by for Stolee >> - add patch 20 to up

Re: [PATCH 00/15] SHA-256 test fixes, part 6

2019-10-08 Thread Derrick Stolee
On 10/5/2019 5:11 PM, brian m. carlson wrote: > This series consists mostly of additional test fixes for SHA-256, plus > some test framework improvements and a new option to rev-parse. > > Up until now, most of the test changes have been directly related to > fixing hash values or sizes in some wa

Re: [PATCH 07/15] t4011: abstract away SHA-1-specific constants

2019-10-08 Thread Derrick Stolee
On 10/8/2019 8:33 AM, Bert Wesarg wrote: > On Tue, Oct 8, 2019 at 2:21 PM Derrick Stolee wrote: >> >> On 10/5/2019 5:12 PM, brian m. carlson wrote: >>> Adjust the test so that it computes variables for object IDs instead of >>> using hard-coded hashes. >&

Re: [PATCH 08/15] t4015: abstract away SHA-1-specific constants

2019-10-08 Thread Derrick Stolee
On 10/5/2019 5:12 PM, brian m. carlson wrote: > Adjust the test so that it computes variables for object IDs instead of > using hard-coded hashes. > > Signed-off-by: brian m. carlson > --- > t/t4015-diff-whitespace.sh | 89 +++--- > 1 file changed, 53 insertions(+

Re: [PATCH 07/15] t4011: abstract away SHA-1-specific constants

2019-10-08 Thread Derrick Stolee
On 10/5/2019 5:12 PM, brian m. carlson wrote: > Adjust the test so that it computes variables for object IDs instead of > using hard-coded hashes. [snip] > @@ -137,14 +141,17 @@ test_expect_success SYMLINKS 'setup symlinks with > attributes' ' > ' > > test_expect_success SYMLINKS 'symlinks d

Re: [PATCH 03/15] rev-parse: add an --object-format option

2019-10-08 Thread Derrick Stolee
On 10/5/2019 5:11 PM, brian m. carlson wrote: > Add an option to print the object format used for input, output, or > storage. This allows shell scripts to discover the hash algorithm in > use. Why put this in 'rev-parse'? Is a test helper not an option for this? -Stolee

[PATCH v3 14/17] sparse-checkout: sanitize for nested folders

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If a user provides folders A/ and A/B/ for inclusion in a cone-mode sparse-checkout file, the parsing logic will notice that A/ appears both as a "parent" type pattern and as a "recursive" type pattern. This is unexpected and hence will complain via a w

[PATCH v3 16/17] sparse-checkout: write using lockfile

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee If two 'git sparse-checkout set' subcommands are launched at the same time, the behavior can be unexpected as they compete to write the sparse-checkout file and update the working directory. Take a lockfile around the writes to the sparse-checkout file. In additio

[PATCH v3 17/17] sparse-checkout: cone mode should not interact with .gitignore

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee During the development of the sparse-checkout "cone mode" feature, an incorrect placement of the initializer for "use_cone_patterns = 1" caused warnings to show up when a .gitignore file was present with non-cone-mode patterns. This was fixed in

[PATCH v3 11/17] unpack-trees: hash less in cone mode

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature in "cone mode" can use the fact that the recursive patterns are "connected" to the root via parent patterns to decide if a directory is entirely contained in the sparse-checkout or entirely removed. In these cases, we can sk

[PATCH v3 15/17] sparse-checkout: update working directory in-process

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout builtin used 'git read-tree -mu HEAD' to update the skip-worktree bits in the index and to update the working directory. This extra process is overly complex, and prone to failure. It also requires that we write our changes to the sparse-che

[PATCH v3 12/17] unpack-trees: add progress to clear_ce_flags()

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When a large repository has many sparse-checkout patterns, the process for updating the skip-worktree bits can take long enough that a user gets confused why nothing is happening. Update the clear_ce_flags() method to write progress. Signed-off-by: Derrick Stolee

[PATCH v3 10/17] sparse-checkout: init and set in cone mode

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee To make the cone pattern set easy to use, update the behavior of 'git sparse-checkout [init|set]'. Add '--cone' flag to 'git sparse-checkout init' to set the config option 'core.sparseCheckoutCone=true'. When running 'git s

[PATCH v3 13/17] read-tree: show progress by default

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The read-tree builtin has a --verbose option that signals to show progress and other data while updating the index. Update this to be on by default when stderr is a terminal window. This will help tools like 'git sparse-checkout' to automatically benefit fro

[PATCH v3 06/17] sparse-checkout: create 'disable' subcommand

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The instructions for disabling a sparse-checkout to a full working directory are complicated and non-intuitive. Add a subcommand, 'git sparse-checkout disable', to perform those steps for the user. Signed-off-by: Derrick Stolee --- Documentation/git-sparse-ch

[PATCH v3 09/17] sparse-checkout: use hashmaps for cone patterns

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The parent and recursive patterns allowed by the "cone mode" option in sparse-checkout are restrictive enough that we can avoid using the regex parsing. Everything is based on prefix matches, so we can use hashsets to store the prefixes from the sparse-checkout

[PATCH v3 05/17] sparse-checkout: add '--stdin' option to set subcommand

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns and places them in the sparse-checkout file. Then, it updates the working directory to match those patterns. For a large list of patterns, the command-line call can get very cumbersome. Add a '

[PATCH v3 00/17] New sparse-checkout builtin and "cone" mode

2019-10-07 Thread Derrick Stolee via GitGitGadget
sible to do a sparse checkout without checking out the whole repository first? [3] http://www.marcoyuen.com/articles/2016/06/07/git-sparse.htmlA blog post of a user's extra "git-sparse" helper. [4] https://github.com/git/git/compare/fc5fd706ff733392053e6180086a4d7f96acc2af...01204f24c5349aa2fb0c474546d7689

[PATCH v3 08/17] sparse-checkout: add 'cone' mode

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature can have quadratic performance as the number of patterns and number of entries in the index grow. If there are 1,000 patterns and 1,000,000 entries, this time can be very significant. Create a new Boolean config option, core.sparseCheckoutCone

[PATCH v3 04/17] sparse-checkout: 'set' subcommand

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The 'git sparse-checkout set' subcommand takes a list of patterns as arguments and writes them to the sparse-checkout file. Then, it updates the working directory using 'git read-tree -mu HEAD'. The 'set' subcommand will replace the entire c

[PATCH v3 03/17] clone: add --sparse mode

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee When someone wants to clone a large repository, but plans to work using a sparse-checkout file, they either need to do a full checkout first and then reduce the patterns they included, or clone with --no-checkout, set up their patterns, and then run a checkout manually. This

[PATCH v3 02/17] sparse-checkout: create 'init' subcommand

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee Getting started with a sparse-checkout file can be daunting. Help users start their sparse enlistment using 'git sparse-checkout init'. This will set 'core.sparseCheckout=true' in their config, write an initial set of patterns to the sparse-checkout fi

[PATCH v3 01/17] sparse-checkout: create builtin with 'list' subcommand

2019-10-07 Thread Derrick Stolee via GitGitGadget
From: Derrick Stolee The sparse-checkout feature is mostly hidden to users, as its only documentation is supplementary information in the docs for 'git read-tree'. In addition, users need to know how to edit the .git/info/sparse-checkout file with the right patterns, then run the a

Re: [PATCH v2 08/11] sparse-checkout: add 'cone' mode

2019-10-07 Thread Derrick Stolee
On 10/6/2019 12:22 AM, Elijah Newren wrote: > On Thu, Sep 19, 2019 at 1:45 PM Derrick Stolee via GitGitGadget > wrote: >> >> From: Derrick Stolee >> >> The sparse-checkout feature can have quadratic performance as >> the number of patterns and number of entrie

  1   2   3   4   5   6   7   8   9   10   >