Re: [PATCH 0/6] Kill the_repository in tree-walk.c

2019-06-27 Thread Derrick Stolee
On 6/27/2019 9:04 AM, Johannes Schindelin wrote: > Given that this bug was only caught by a failing CI build, it does make me > wonder what other bugs are hidden and would slip into our code base just > because of gaps in the code coverage. Here are the lines introduced by this series that are not

Re: Git Test Coverage Report (Thurs. June 27)

2019-06-27 Thread Derrick Stolee
Here are some interesting sections I found when examining the test coverage report. I am only highlighting these sections because they seem to include non-trivial logic. In some cases, maybe the code isn't needed. On 6/27/2019 1:05 PM, Derrick Stolee wrote: > promisor-remote.c > db27d

Re: Git Test Coverage Report (Thurs. June 27)

2019-06-28 Thread Derrick Stolee
On 6/28/2019 2:45 AM, Jeff King wrote: > On Thu, Jun 27, 2019 at 01:35:17PM -0400, Derrick Stolee wrote: > >>> t/helper/test-example-decorate.c >>> 0ebbcf70 29) one = lookup_unknown_object(&one_oid); >>> 0ebbcf70 30) two = lookup_unknown_obj

Re: [PATCH 1/6] test-lib: introduce test_commit_bulk

2019-06-28 Thread Derrick Stolee
On 6/28/2019 5:39 AM, Jeff King wrote: > Some tests need to create a string of commits. Doing this with > test_commit is very heavy-weight, as it needs at least one process per > commit (and in fact, uses several). > > For bulk creation, we can do much better by using fast-import, but it's > often

Re: Git Test Coverage Report (Thurs. June 27)

2019-06-28 Thread Derrick Stolee
On 6/28/2019 5:47 AM, Duy Nguyen wrote: > On Fri, Jun 28, 2019 at 12:35 AM Derrick Stolee wrote: >>> dir.c >>> 3b2385cf 2840) static void jw_object_untracked_cache_dir(struct json_writer >>> *jw, >>> 3b2385cf 2845) jw_object_bool(jw, "valid",

Re: [PATCH] check_everything_connected: assume alternate ref tips are valid

2019-06-28 Thread Derrick Stolee
On 6/28/2019 6:11 AM, Jeff King wrote: > When we receive a remote ref update to sha1 "X", we want to check that > we have all of the objects needed by "X". We can assume that our > repository is not currently corrupted, and therefore if we have a ref > pointing at "Y", we have all of its objects. S

Re: [PATCH v2 1/3] repo-settings: create core.featureAdoptionRate setting

2019-06-28 Thread Derrick Stolee
On 6/28/2019 4:50 PM, Junio C Hamano wrote: > "Derrick Stolee via GitGitGadget" writes: > >> +core.featureAdoptionRate:: >> +Set an integer value on a scale from 0 to 10 describing your >> +desire to adopt new performance features. Defaults to 0. As >

Re: Git Test Coverage Report (Thurs. June 27)

2019-06-28 Thread Derrick Stolee
On 6/28/2019 7:59 PM, Jeff King wrote: > On Fri, Jun 28, 2019 at 08:23:49AM -0400, Derrick Stolee wrote: > >> On 6/28/2019 2:45 AM, Jeff King wrote: >>> On Thu, Jun 27, 2019 at 01:35:17PM -0400, Derrick Stolee wrote: >>> >>>>> t/helper/t

Re: [PATCH v2 1/3] repo-settings: create core.featureAdoptionRate setting

2019-06-28 Thread Derrick Stolee
On 6/28/2019 5:42 PM, Junio C Hamano wrote: > "Derrick Stolee via GitGitGadget" writes: > >> +struct repo_settings { >> +char core_commit_graph; >> +char gc_write_commit_graph; >> +}; > > I do not see a particular reason to favor type "

Re: [PATCH] t5319: don't trip over a user name with whitespace

2019-07-01 Thread Derrick Stolee
Sorry I'm late to the thread. Thanks for reporting this issue, Johannes. On 7/1/2019 7:33 AM, SZEDER Gábor wrote: > On Mon, Jul 01, 2019 at 05:16:02AM -0400, Jeff King wrote: >> I see Gábor suggested using "wc -c" elsewhere in the thread. That would >> be fine with me, too, though I think the requ

Re: [PATCH v5 02/11] commit-graph: return with errors during write

2019-07-01 Thread Derrick Stolee
On 6/29/2019 1:23 PM, SZEDER Gábor wrote: > On Wed, Jun 12, 2019 at 06:29:37AM -0700, Derrick Stolee via GitGitGadget > wrote: >> diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh >> index e80c1cac02..3b6fd0d728 100755 >> --- a/t/t5318-commit-graph.sh >>

Re: [PATCH] check_everything_connected: assume alternate ref tips are valid

2019-07-01 Thread Derrick Stolee
On 6/29/2019 3:43 AM, Jeff King wrote: > On Fri, Jun 28, 2019 at 08:51:04AM -0400, Derrick Stolee wrote: > >> On 6/28/2019 6:11 AM, Jeff King wrote: >>> When we receive a remote ref update to sha1 "X", we want to check that >>> we have all of the objec

Re: [PATCH] check_everything_connected: assume alternate ref tips are valid

2019-07-01 Thread Derrick Stolee
On 6/29/2019 3:55 AM, Jeff King wrote: > On Fri, Jun 28, 2019 at 09:22:56AM -0700, Junio C Hamano wrote: > >>> argv_array_push(&rev_list.args, "--quiet"); >>> + argv_array_push(&rev_list.args, "--alternate-refs"); >>> if (opt->progress) >>> argv_array_pushf(&rev_list.args, "-

Re: [PATCH] t5319: don't trip over a user name with whitespace

2019-07-01 Thread Derrick Stolee
On 7/1/2019 8:11 AM, Johannes Schindelin wrote: > Hi Peff, > > On Sun, 30 Jun 2019, Jeff King wrote: > >> On Sun, Jun 30, 2019 at 10:59:34PM +0200, Johannes Sixt wrote: >> >>> Am 30.06.19 um 21:48 schrieb Eric Sunshine: On Sun, Jun 30, 2019 at 2:57 PM Johannes Sixt wrote: > diff --git a

Re: [PATCH v2 1/3] repo-settings: create core.featureAdoptionRate setting

2019-07-01 Thread Derrick Stolee
On 6/30/2019 2:35 PM, Carlo Arenas wrote: > On Fri, Jun 28, 2019 at 6:44 PM Derrick Stolee wrote: >> >> On 6/28/2019 5:42 PM, Junio C Hamano wrote: >>> "Derrick Stolee via GitGitGadget" writes: >>> >>> Use of "signed char" would be OK

Re: [PATCH 1/2] object-store.h: move for_each_alternate_ref() from transport.h

2019-07-01 Thread Derrick Stolee
On 7/1/2019 9:17 AM, Jeff King wrote: > There's nothing inherently transport-related about enumerating the > alternate ref tips. The code has lived in transport.[ch] because the > only use so far had been advertising available tips during transport. > But it could be used for more, and a future pat

Re: [PATCH] t5319: don't trip over a user name with whitespace

2019-07-01 Thread Derrick Stolee
On 7/1/2019 2:22 PM, Johannes Sixt wrote: > Am 01.07.19 um 14:30 schrieb Derrick Stolee: >> On 7/1/2019 8:11 AM, Johannes Schindelin wrote: >>> Or we stop introducing new Perl calls, and use the perfectly fine >>> `test-tool path-utils file-size` command: >>>

Re: [RFC/PATCH 1/2] rebuash - squash/rebase in a single step

2019-07-02 Thread Derrick Stolee
On 7/1/2019 2:35 PM, Junio C Hamano wrote: > Jeff King writes: > >>> First, we create a (temporary) merge commit of both branches (M3) >>> >>> >>> R1---R2---R3---R4---R5---R6---R7---M3 >>> \ \ \ / >>> F1---F2---M1---F3---F4---M2---F5 >>>

Re: [PATCH v2 1/3] repo-settings: create core.featureAdoptionRate setting

2019-07-02 Thread Derrick Stolee
On 7/2/2019 7:09 AM, Duy Nguyen wrote: > On Tue, Jul 2, 2019 at 5:47 PM Ævar Arnfjörð Bjarmason > wrote: >> >> >> On Wed, Jun 19 2019, Derrick Stolee via GitGitGadget wrote: >> >>> core.commitGraph:: >>> If true, then git will read the com

Re: Virtual Git Contributor Summit

2019-07-03 Thread Derrick Stolee
On 7/3/2019 9:01 AM, Johannes Schindelin wrote: > Team, > > I kept talking about this idea of a purely online Git Contributor Summit, > and it is finally time for action. Thanks for organizing this! > To alleviate both of those points, we might want to consider spreading it > out over a couple o

Re: [PATCH v3 0/3] [RFC] Create 'core.featureAdoptionRate' setting to update config defaults

2019-07-08 Thread Derrick Stolee
On 7/1/2019 10:29 AM, Derrick Stolee via GitGitGadget wrote: > Here is a second run at this RFC, which aims to create a "meta" config > setting that automatically turns on other settings according to a user's > willingness to trade new Git behavior or new feature risk fo

Re: [PATCH v3 0/3] [RFC] Create 'core.featureAdoptionRate' setting to update config defaults

2019-07-09 Thread Derrick Stolee
On 7/9/2019 3:21 PM, Junio C Hamano wrote: > Derrick Stolee writes: > >> The other category that has been discussed already is that of "experimental >> features that we generally think are helpful but change behavior slightly in >> some cases"

Git Test Coverage Report (Wed. July 10)

2019-07-10 Thread Derrick Stolee
f_addf(errbuf, _("invalid filter-spec '%s'"), arg); read-cache.c ee70c128 1723) if (advice_unknown_index_extension) { ee70c128 1724) warning(_("ignoring optional %.4s index extension"), ext); ee70c128 1725) advise(_("This is likely due to the file having been w

Re: Git Test Coverage Report (Wed. July 10)

2019-07-10 Thread Derrick Stolee
t; %06o)", ab5b0492 181) strbuf_addstr(&buf, line); read-cache.c 8eeabe15 1754) ret = error(_("index uses %.4s extension, which we do not understand"), ee70c128 1756) if (advice_unknown_index_extension) { ee70c128 1757) warning(_("ignoring optional %.4s index extension"), ext); ee70

Git Test Coverage Report (July 21)

2019-07-21 Thread Derrick Stolee
tat_data); 3b2385cf 2848) jw_object_string(jw, "exclude-oid", oid_to_hex(&ucd->exclude_oid)); 3b2385cf 2849) jw_object_inline_begin_array(jw, "untracked"); 3b2385cf 2850) for (i = 0; i < ucd->untracked_nr; i++) 3b2385cf 2851) jw_array_string(jw, ucd->untracked[i])

Re: [PATCH v3 0/3] [RFC] Create 'core.featureAdoptionRate' setting to update config defaults

2019-07-22 Thread Derrick Stolee
On 7/9/2019 6:05 PM, Junio C Hamano wrote: > Derrick Stolee writes: > >> From this list, do you think any of these settings are likely to >> become defaults? It seems that protocol.version = 2 may be a default >> now that _most_ services have an implementation, and it

Re: [PATCH 2/5] repo-settings: add feature.manyCommits setting

2019-07-24 Thread Derrick Stolee
On 7/23/2019 10:53 AM, Johannes Schindelin wrote: > Hi Stolee, > > On Mon, 22 Jul 2019, Derrick Stolee via GitGitGadget wrote: > >> From: Derrick Stolee >> >> When a repo has many commits, it is helpful to write and read the >> commit-graph file. Future c

Re: [PATCH 3/5] repo-settings: parse core.untrackedCache

2019-07-24 Thread Derrick Stolee
On 7/23/2019 11:04 AM, Johannes Schindelin wrote: > Hi Stolee, > > On Mon, 22 Jul 2019, Derrick Stolee via GitGitGadget wrote: > >> From: Derrick Stolee >> >> The core.untrackedCache config setting is slightly complicated, >> so clarify its use and

Re: [PATCH 5/5] repo-settings: create feature.experimental setting

2019-07-24 Thread Derrick Stolee
On 7/23/2019 11:20 AM, Johannes Schindelin wrote: > Hi Stolee, > > On Mon, 22 Jul 2019, Derrick Stolee via GitGitGadget wrote: >> struct path_hashmap_entry { >> struct hashmap_entry e; >> @@ -1375,10 +1376,14 @@ static int handle_rename_via_dir(st

Re: Alternates advertisement on GitHub

2019-07-26 Thread Derrick Stolee
On 7/25/2019 11:18 PM, Taylor Blau wrote: > Hi everybody, > > Pushes to forks of git.git hosted on GitHub now advertise the tips of > git.git as well as branches from your fork. > > You may recall that Peff and I have sent a handful of patches to allow > repositories to customize how they gather

Re: [PATCH v2 01/20] merge-recursive: fix minor memory leak in error condition

2019-07-29 Thread Derrick Stolee
On 7/26/2019 2:31 PM, Junio C Hamano wrote: > Elijah Newren writes: > >> Returning before freeing the allocated buffer is suboptimal; as with >> elsewhere in the same function, make sure buf gets free'd. > > I do not have a real objection to the patch text, but the above > justification does not

Git Test Coverage Report (Tues. July 30)

2019-07-30 Thread Derrick Stolee
f0f544da 3653) static struct index_entry_offset_table *read_ieot_extension( f0f544da 3675) return do_read_ieot_extension(istate, index, extsize); repo-settings.c bbd04cf0 20) UPDATE_DEFAULT(rs->pack_use_sparse, 1); repository.c 74265dd7 279) int repo_refresh_and_write_index(struct repository *r, 742

Git Test Coverage Report (v2.23.0-rc0)

2019-07-30 Thread Derrick Stolee
strbuf.c 8f354a1f 818) strbuf_addf(buf, 8f354a1f 850) Q_("%u byte/s", "%u bytes/s", (unsigned)bytes), t/helper/test-dir-iterator.c fa1da7d2 24) die("invalid option '%s'", *argv); fa1da7d2 28) die("dir-iterator needs exactly one non-option argument"

Re: [RFC PATCH] trace2: don't overload target directories

2019-07-30 Thread Derrick Stolee
On 7/29/2019 6:20 PM, Josh Steadmon wrote: > trace2 can write files into a target directory. With heavy usage, this > directory can fill up with files, causing difficulty for > trace-processing systems. > > When trace2 would write a file to a target directory, first check > whether or not the dire

Re: [PATCH] t5510-fetch: fix negated 'test_i18ngrep' invocation

2019-07-31 Thread Derrick Stolee
On 7/30/2019 5:40 PM, SZEDER Gábor wrote: > On Tue, Jul 30, 2019 at 11:29:15PM +0200, SZEDER Gábor wrote: >> The test '--no-show-forced-updates' in 't5510-fetch.sh' added in >> cdbd70c437 (fetch: add --[no-]show-forced-updates argument, >> 2019-06-18) runs '! test_i18ngrep ...'. This is wrong, bec

Re: [PATCH 1/3] t5510-fetch: run non-httpd-specific test before sourcing 'lib-httpd.sh'

2019-08-01 Thread Derrick Stolee
On 8/1/2019 11:53 AM, SZEDER Gábor wrote: > 't5510-fetch.sh' sources 'lib-httpd.sh' near the end to run a > httpd-specific test, but 'lib-httpd.sh' skips all the rest of the test > script if the dependencies for running httpd tests are not fulfilled. > Alas, recently cdbd70c437 (fetch: add --[no-]s

Re: [PATCH 3/6] tree-walk: use size_t consistently

2019-08-01 Thread Derrick Stolee
On 7/31/2019 12:38 AM, Jeff King wrote: > We store and manipulate the cumulative traverse_info.pathlen as an > "int", which can overflow when we are fed ridiculously long pathnames > (e.g., ones at the edge of 2GB or 4GB, even if the individual tree entry > names are smaller than that). The results

Re: [PATCH v3 2/5] repo-settings: add feature.manyCommits setting

2019-08-01 Thread Derrick Stolee
On 7/31/2019 11:01 AM, Ævar Arnfjörð Bjarmason wrote: > > On Tue, Jul 30 2019, Derrick Stolee via GitGitGadget wrote: > >> +feature.*:: >> +The config settings that start with `feature.` modify the defaults of >> +a group of other config settings. These gr

Re: git-log on a file, and merges

2019-08-02 Thread Derrick Stolee
On 8/2/2019 5:38 AM, Piotr Krukowiecki wrote: > Hi, > > I have merged a branch into master. > > When on master I do "git log -- some/file", it does not show commits > from merged branch (which I know they changed the file). > I have to add "--full-history" to see the commits. > When I run "git lo

Re: [PATCH 3/3] commit-graph: error out on invalid commit oids in 'write --stdin-commits'

2019-08-05 Thread Derrick Stolee
On 8/5/2019 4:02 AM, SZEDER Gábor wrote: > While 'git commit-graph write --stdin-commits' expects commit object > ids as input, it accepts and silently skips over any invalid commit > object ids, and still exits with success: > > # nonsense > $ echo not-a-commit-oid | git commit-graph write --

Re: [PATCH 1/1] commit-graph: fix bug around octopus merges

2019-08-06 Thread Derrick Stolee
On 8/6/2019 5:21 AM, SZEDER Gábor wrote: > On Mon, Aug 05, 2019 at 09:43:41AM -0700, Derrick Stolee via GitGitGadget > wrote: > >> In such a case, the reading >> process outputs the following message to stderr: >> >> warning: commit-graph chain does not matc

Re: RFC - Git Developer Blog

2019-08-06 Thread Derrick Stolee
l_ Git users. That said, I also suggest that the authors can list their professional affiliation as some minimum amount of credit to their employers. Something as simple as "Author: Derrick Stolee, Microsoft" would go a long way to justifying the work it takes to write these on the community blog and not a company-owned blog. Thanks, -Stolee

Re: [PATCH v4 3/7] test-reach: add rev-list tests

2018-10-21 Thread Derrick Stolee
On 10/21/2018 6:21 AM, Jakub Narebski wrote: "Derrick Stolee via GitGitGadget" writes: From: Derrick Stolee The rev-list command is critical to Git's functionality. Ensure it works in the three commit-graph environments constructed in t6600-test-reach.sh. Here are a few imp

Re: [PATCH v4 4/7] revision.c: begin refactoring --topo-order logic

2018-10-21 Thread Derrick Stolee
On 10/21/2018 9:12 PM, Junio C Hamano wrote: Jakub Narebski writes: So if revs->limited is set (but not because revs->topo_order is set), which means A..B queries, we will be still using the old algorithm. All right, though I wonder if it could be improved in the future (perhaps with the help

[RFC PATCH] revision.c: use new algorithm in A..B case

2018-10-21 Thread Derrick Stolee
Signed-off-by: Derrick Stolee --- I just wanted to mention that in order to use the new logic for 'git log --topo-order A..B', we just need the following patch. It is an extra time that sets 'revs->limited' to 1, triggering the old logic. You can use this for compariso

Re: [PATCH v4 6/7] revision.c: generation-based topo-order algorithm

2018-10-23 Thread Derrick Stolee
On 10/22/2018 9:37 AM, Jakub Narebski wrote: "Derrick Stolee via GitGitGadget" writes: From: Derrick Stolee The current --topo-order algorithm requires walking all reachable commits up front, topo-sorting them, all before outputting the first value. This patch introduces a new

Re: [PATCH] commit-reach: fix sorting commits by generation

2018-10-24 Thread Derrick Stolee
On 10/23/2018 4:32 PM, Thomas Gummerer wrote: On 10/22, René Scharfe wrote: Am 22.10.2018 um 23:10 schrieb Thomas Gummerer: Anyway, your implied question was discussed back then. Derrick wrote: The reason to sort is to hopefully minimize the amount we walk by exploring the "lower" com

Re: [PATCH v3 09/12] commit-graph: convert to using the_hash_algo

2018-10-24 Thread Derrick Stolee
On 10/21/2018 10:43 PM, brian m. carlson wrote: Instead of using hard-coded constants for object sizes, use the_hash_algo to look them up. In addition, use a function call to look up the object ID version and produce the correct value. For now, we use version 1, which means to use the default a

Recommended configurations (was Re: [PATCH v1 2/2] reset: add new reset.quietDefault config setting)

2018-10-24 Thread Derrick Stolee
On 10/23/2018 4:03 PM, Ævar Arnfjörð Bjarmason wrote: [snip] The --ahead-behind config setting stalled on-list before: https://public-inbox.org/git/36e3a9c3-f7e2-4100-1bfc-647b809a0...@jeffhostetler.com/ Now we have this similarly themed thing. I think we need to be mindful of how changes like

[PATCH] packfile: close multi-pack-index in close_all_packs

2018-10-25 Thread Derrick Stolee
failure when running t6500-gc.sh with GIT_TEST_MULTI_PACK_INDEX=1. Reported-by: Szeder Gábor Signed-off-by: Derrick Stolee --- Thanks for the report, Szeder! I think this is the correct fix, and more likely to be permanent across all builtins that run auto-GC. I based it on ds/test-multi-pack-index so

Re: [PATCH v3 7/7] revision.c: refactor basic topo-order logic

2018-10-25 Thread Derrick Stolee
On 10/25/2018 5:43 AM, Jeff King wrote: On Thu, Oct 11, 2018 at 12:21:44PM -0400, Derrick Stolee wrote: 2. INDEGREE: using the indegree_queue priority queue (ordered by maximizing the generation number), add one to the in- degree of each parent for each commit that is walked. Since

Git Test Coverage Report (Saturday, Oct 27)

2018-10-27 Thread Derrick Stolee
cfac40b: rebase--interactive: move transform_todo_file() to rebase--interactive.c Alban Gruin  9787d17d4: sequencer: refactor rearrange_squash() to work on a todo_list Alban Gruin  b5d606240: sequencer: refactor sequencer_add_exec_commands() to work on a todo_list Alban Gruin  b74a37a5a: sequ

Re: Git Test Coverage Report (Saturday, Oct 27)

2018-10-27 Thread Derrick Stolee
On 10/27/2018 9:55 AM, Junio C Hamano wrote: Derrick Stolee writes: Uncovered in mater not in master@{1} Does this typo indicate that some part of the process to produce and send out this report involve manual editing? I kick off four builds with on

Re: [PATCH] packfile: close multi-pack-index in close_all_packs

2018-10-29 Thread Derrick Stolee
On 10/29/2018 7:10 AM, SZEDER Gábor wrote: On Thu, Oct 25, 2018 at 12:54:05PM +, Derrick Stolee wrote: Whenever we delete pack-files from the object directory, we need to also delete the multi-pack-index that may refer to those objects. Sometimes, this connection is obvious, like during a

[RFC] Generation Number v2

2018-10-29 Thread Derrick Stolee
We've discussed in several places how to improve upon generation numbers. This RFC is a report based on my investigation into a few new options, and how they compare for Git's purposes on several existing open-source repos. You can find this report and the associated test scripts at https://githu

Re: [RFC] Generation Number v2

2018-10-29 Thread Derrick Stolee
On 10/29/2018 3:22 PM, Stefan Beller wrote: Based on the performance results alone, we should remove minimum generation numbers, (epoch, date) pairs, and FELINE index from consideration. There are enough examples of these indexes performing poorly. In contrast, maximum generation numbers and cor

Re: [RFC] Generation Number v2

2018-10-29 Thread Derrick Stolee
Here is a re-formatted version of the tables I introduced earlier. The tables were too wide for public-inbox to render correctly (when paired with my email client). Hopefully this bulleted-list format works better. Thanks, Stefan, for pointing out the rendering problems! ### Test 1: `git log --to

Git Test Coverage Report (Tuesday, Oct 30)

2018-10-30 Thread Derrick Stolee
odule: factor out a config_set_in_gitmodules_file_gently function Antonio Ospite  bcbc780d1: submodule: add a print_config_from_gitmodules() helper Antonio Ospite  c22b82014: submodule: support reading .gitmodules when it's not in the working tree Derrick Stolee  1dcd9f204: midx:

Re: commit-graph is cool (overcoming add_missing_tags() perf issues)

2018-10-30 Thread Derrick Stolee
On 10/17/2018 2:00 PM, Elijah Newren wrote: Hi, Just wanted to give a shout-out for the commit-graph work and how impressive it is. I had an internal report from a user that git pushes containing only one new tiny commit were taking over a minute (in a moderate size repo with good network conne

Re: [PATCH 1/3] commit-reach: implement get_reachable_subset

2018-10-31 Thread Derrick Stolee
On 10/31/2018 2:07 AM, Elijah Newren wrote: On Tue, Oct 30, 2018 at 7:16 AM Derrick Stolee via GitGitGadget wrote: --- a/commit-reach.c +++ b/commit-reach.c @@ -688,3 +688,73 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to, object_array_clear(&from_

Re: [PATCH 1/3] commit-reach: implement get_reachable_subset

2018-10-31 Thread Derrick Stolee
On 10/30/2018 11:35 PM, Junio C Hamano wrote: "Derrick Stolee via GitGitGadget" writes: +struct commit_list *get_reachable_subset(struct commit **from, int nr_from, +struct commit **to, int nr_to, +

Re: [PATCH 0/3] Make add_missing_tags() linear

2018-10-31 Thread Derrick Stolee
On 10/31/2018 2:04 AM, Elijah Newren wrote: > On Tue, Oct 30, 2018 at 7:16 AM Derrick Stolee via GitGitGadget > wrote: >> >> As reported earlier [1], the add_missing_tags() method in remote.c has >> quadratic performance. Some of that performance is curbed due to the >

Re: [RFC] Generation Number v2

2018-10-31 Thread Derrick Stolee
On 10/29/2018 11:59 PM, Junio C Hamano wrote: Derrick Stolee writes: **V3: Corrected Commit Date.** For a commit C, let its _corrected commit date_ (denoted by cdate(C)) be the maximum of the commit date of C and the commit dates of its parents. "maximum of the commit date of C an

Re: [RFC] Generation Number v2

2018-10-31 Thread Derrick Stolee
On 10/31/2018 8:54 AM, Ævar Arnfjörð Bjarmason wrote: On Tue, Oct 30 2018, Junio C Hamano wrote: Derrick Stolee writes: In contrast, maximum generation numbers and corrected commit dates both performed quite well. They are frequently the top two performing indexes, and rarely significantly

Re: [PATCH 18/19] submodule: use submodule repos for object lookup

2018-10-31 Thread Derrick Stolee
On 10/16/2018 7:35 PM, Stefan Beller wrote: @@ -482,14 +483,46 @@ void prepare_submodule_repo_env(struct argv_array *out) DEFAULT_GIT_DIR_ENVIRONMENT); } -/* Helper function to display the submodule header line prior to the full - * summary output. If it can locate

Re: [PATCH v3 4/8] merge-recursive: new function for better colliding conflict resolutions

2018-10-31 Thread Derrick Stolee
On 10/19/2018 3:31 PM, Elijah Newren wrote: +#if 0 // #if-0-ing avoids unused function warning; will make live in next commit +static int handle_file_collision(struct merge_options *o, +const char *collide_path, +const char *prev_pa

Re: [PATCH v3 4/8] merge-recursive: new function for better colliding conflict resolutions

2018-10-31 Thread Derrick Stolee
On 10/31/2018 9:53 AM, Derrick Stolee wrote: On 10/19/2018 3:31 PM, Elijah Newren wrote: +#if 0 // #if-0-ing avoids unused function warning; will make live in next commit +static int handle_file_collision(struct merge_options *o, + const char *collide_path

Re: [PATCH v3 2/8] t6036, t6042: testcases for rename collision of already conflicting files

2018-10-31 Thread Derrick Stolee
On 10/19/2018 3:31 PM, Elijah Newren wrote: +test_expect_success "setup nested conflicts" ' nit: should these test names be single-quoted? I see you using double-quotes in PATCH 1/8 as well, but that seems to be because there are variables in the test names. ... +test_expect_failure "check n

Re: [PATCH v3 8/8] merge-recursive: improve rename/rename(1to2)/add[/add] handling

2018-10-31 Thread Derrick Stolee
On 10/19/2018 3:31 PM, Elijah Newren wrote: [snip] + char *new_path = NULL; + if (dir_in_way(b->path, !o->call_depth, 0)) { + new_path = unique_path(o, b->path, ci->branch2); + output(o, 1, _(

Re: [PATCH 0/3] Make add_missing_tags() linear

2018-11-01 Thread Derrick Stolee
On 11/1/2018 2:52 AM, Elijah Newren wrote: On Wed, Oct 31, 2018 at 5:05 AM Derrick Stolee wrote: On 10/31/2018 2:04 AM, Elijah Newren wrote: On the original repo where the topic was brought up, with commit-graph NOT turned on and using origin/master, I see: $ time git push --dry-run

Re: [RFC] Generation Number v2

2018-11-01 Thread Derrick Stolee
On 11/1/2018 8:27 AM, Jakub Narebski wrote: [I have noticed that in some places I wrote A..B instead of B..A. Sorry about that] Derrick Stolee writes: Please also let me know about any additional tests that I could run. Now that I've got a lot of test scripts built up, I can re-ru

[PATCH v5 1/7] prio-queue: add 'peek' operation

2018-11-01 Thread Derrick Stolee
.c so this method is exercised by t0009-prio-queue.sh. Further, add a test that checks the behavior when the compare function is NULL (i.e. the queue becomes a stack). Signed-off-by: Derrick Stolee --- prio-queue.c | 9 + prio-queue.h | 6 ++ t/helper

[PATCH v5 0/7] Use generation numbers for --topo-order

2018-11-01 Thread Derrick Stolee
11b-d931f51ef...@gmail.com/ [RFC] Generation Number v2 Note: I'm not submitting this version via GitGitGadget because it's currently struggling with how to handle a PR in a conflict state. The new flags in revision.h have a conflict with recent changes in master. Derrick Stolee (7

[PATCH v5 5/7] commit/revisions: bookkeeping before refactoring

2018-11-01 Thread Derrick Stolee
d-by: Jeff King Signed-off-by: Derrick Stolee --- commit.c | 9 - commit.h | 7 +++ revision.c | 18 ++ 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/commit.c b/commit.c index d0f199e122..a025a0db60 100644 --- a/commit.c +++ b/commit.c @@ -655,

[PATCH v5 4/7] revision.c: begin refactoring --topo-order logic

2018-11-01 Thread Derrick Stolee
s_to_list() exactly like the old logic. While this commit presents method redirection for performing the exact same logic as before, it allows the next commit to focus only on the new logic. Signed-off-by: Derrick Stolee --- revision.c | 42 ++ revisio

[PATCH v5 7/7] t6012: make rev-list tests more interesting

2018-11-01 Thread Derrick Stolee
numbers. The extra tests can be added indepently. Signed-off-by: Derrick Stolee --- t/t6012-rev-list-simplify.sh | 45 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/t/t6012-rev-list-simplify.sh b/t/t6012-rev-list-simplify.sh index b5a1190ffe

[PATCH v5 6/7] revision.c: generation-based topo-order algorithm

2018-11-01 Thread Derrick Stolee
number of commits (before determining we do not have 100 hits). However, get the benefit that the output is presented to the user as it is discovered, much the same as a normal 'git log' command (no '--topo-order'). This is an improved user experience, even if the command has

[PATCH v5 2/7] test-reach: add run_three_modes method

2018-11-01 Thread Derrick Stolee
_three_modes to be a simple translation on a more general run_three_modes method that executes the given command and tests the actual output to the expected output. Signed-off-by: Derrick Stolee --- t/t6600-test-reach.sh | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/t

[PATCH v5 3/7] test-reach: add rev-list tests

2018-11-01 Thread Derrick Stolee
.HEAD * Ancestry: git rev-list --topo-order --ancestry-path compare..HEAD * Symmetric Difference: git rev-list --topo-order compare...HEAD Signed-off-by: Derrick Stolee --- t/t6600-test-reach.sh | 84 +++ 1 file changed, 84 insertions(+) diff --git a/t/t6600

Re: [PATCH v4 0/7] Use generation numbers for --topo-order

2018-11-01 Thread Derrick Stolee
On 11/1/2018 1:21 AM, Junio C Hamano wrote: "Derrick Stolee via GitGitGadget" writes: This patch series performs a decently-sized refactoring of the revision-walk machinery. Well, "refactoring" is probably the wrong word, as I don't actually remove the old code. Ins

master updated? (was Re: What's cooking in git.git (Nov 2018, #01; Thu, 1))

2018-11-01 Thread Derrick Stolee
On 11/1/2018 5:59 AM, Junio C Hamano wrote: -- [Graduated to "master"] I see that several topics graduated, but it appears the master branch was not updated at https://github.com/gister/git. Was this intentional? I noticed because the test-cove

Re: [PATCH v5 6/7] revision.c: generation-based topo-order algorithm

2018-11-01 Thread Derrick Stolee
On 11/1/2018 11:48 AM, SZEDER Gábor wrote: On Thu, Nov 01, 2018 at 01:46:22PM +, Derrick Stolee wrote: 1. EXPLORE: using the explore_queue priority queue (ordered by maximizing the generation number) 2. INDEGREE: using the indegree_queue priority queue (ordered by maximizing the

Git Test Coverage Report (Thursday, Nov 1) Part A

2018-11-01 Thread Derrick Stolee
ng(c); a63d88e595 2970) return; a63d88e595 2973) return; a63d88e595 2978) return; a63d88e595 3042) continue; f33f8de6af 3090) if (!revs->ignore_missing_links) f33f8de6af 3091) die("Failed to traverse parents of commit %s", a63d88e595 3092) oid_to_hex(&commit->object.oid)); a63d88e595 3100) co

Re: [PATCH 0/3] Make add_missing_tags() linear

2018-11-01 Thread Derrick Stolee
On 11/1/2018 2:57 PM, Elijah Newren wrote: On Thu, Nov 1, 2018 at 5:32 AM Derrick Stolee wrote: No rush. I'd just like to understand how removing the commit-graph file can make the new algorithm faster. Putting a similar count in the old algorithm would involve giving a count for every ca

Re: [PATCH 19/24] submodule: use submodule repos for object lookup

2018-11-02 Thread Derrick Stolee
On 10/30/2018 6:08 PM, Stefan Beller wrote: This converts the 'show_submodule_header' function to use the repository API properly, such that the submodule objects are not added to the main object store. Signed-off-by: Stefan Beller A couple tests are broken in 'pu' when run with GIT_TEST_COMM

Re: [PATCH 0/3] Make add_missing_tags() linear

2018-11-02 Thread Derrick Stolee
On 11/2/2018 10:58 AM, Elijah Newren wrote: On Thu, Nov 1, 2018 at 12:02 PM Derrick Stolee wrote: On 11/1/2018 2:57 PM, Elijah Newren wrote: On Thu, Nov 1, 2018 at 5:32 AM Derrick Stolee wrote: No rush. I'd just like to understand how removing the commit-graph file can make th

Re: [PATCH 19/24] submodule: use submodule repos for object lookup

2018-11-02 Thread Derrick Stolee
On 11/2/2018 1:23 PM, Stefan Beller wrote: On Fri, Nov 2, 2018 at 6:03 AM Derrick Stolee wrote: On 10/30/2018 6:08 PM, Stefan Beller wrote: This converts the 'show_submodule_header' function to use the repository API properly, such that the submodule objects are not added to the m

Re: [PATCH v3 8/8] merge-recursive: improve rename/rename(1to2)/add[/add] handling

2018-11-02 Thread Derrick Stolee
On 11/2/2018 1:27 PM, Elijah Newren wrote: On Thu, Nov 1, 2018 at 12:01 AM Elijah Newren wrote: On Wed, Oct 31, 2018 at 8:08 AM Derrick Stolee wrote: On 10/19/2018 3:31 PM, Elijah Newren wrote: [snip] + char *new_path = NULL; + if (dir_in_way(b->p

Re: [PATCH v4 00/10] Improve path collision conflict resolutions

2018-11-02 Thread Derrick Stolee
On 11/2/2018 2:53 PM, Elijah Newren wrote: Major question: * You'll note that I edited the last two patches to mark them as RFC. To be honest, I'm not sure what to do with these. They improve code coverage of new code, but the same gaps existed in the old code; they only show u

[PATCH] merge-recursive: combine error handling

2018-11-02 Thread Derrick Stolee
, and this output is duplicated for each side of the conflict. Simplify the call by generating this new path in a helper function. Signed-off-by: Derrick Stolee --- Elijah, Here is a patch that combines the logic to avoid code clones, and also more easily covers code blocks. Of course, your

Git Test Coverage Report (Friday, Nov 2)

2018-11-02 Thread Derrick Stolee
4196 3091) if (!revs->ignore_missing_links) f0d9cc4196 3092) die("Failed to traverse parents of commit %s", f0d9cc4196 3093) oid_to_hex(&commit->object.oid)); b45424181e 3101) continue; run-command.c 31bfd155d8 1229) error(_("cannot create async thread: %s&qu

Re: [PATCH] multi-pack-index: make code -Wunused-parameter clean

2018-11-05 Thread Derrick Stolee
ze of the array, we can use nr_objects to make sure we don't walk too far. Signed-off-by: Jeff King Thanks, both, for catching this. I prefer the approach that adds defenses. Reviewed-by: Derrick Stolee --- midx.c | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) di

Re: [PATCH 0/1] send-pack: set core.warnAmbiguousRefs=false

2018-11-06 Thread Derrick Stolee
On 11/6/2018 2:44 PM, Jeff King wrote: On Tue, Nov 06, 2018 at 11:13:47AM -0800, Derrick Stolee via GitGitGadget wrote: I've been looking into the performance of git push for very large repos. Our users are reporting that 60-80% of git push time is spent during the "Enumerating obje

Re: [PATCH 0/1] send-pack: set core.warnAmbiguousRefs=false

2018-11-06 Thread Derrick Stolee
On 11/6/2018 2:51 PM, Jeff King wrote: On Tue, Nov 06, 2018 at 02:44:42PM -0500, Jeff King wrote: The fix for this is simple: set core.warnAmbiguousRefs to false for this specific call of git pack-objects coming from git send-pack. We don't want to default it to false for all calls to git pack-

Git Test Coverage Report (Wednesday, Nov 7)

2018-11-07 Thread Derrick Stolee
ete '%s': remote ref does not exist"), eafdc91bbc 1066) return error(_("dst ref %s receives from more than one src"), eafdc91bbc 1785) die(_("couldn't find remote ref %s"), name); eafdc91bbc 1798) error(_("* Ignoring funny ref '%s' locally&

Re: [PATCH 1/9] fsck: do not reuse child_process structs

2018-11-12 Thread Derrick Stolee
On 11/12/2018 9:46 AM, Jeff King wrote: The run-command API makes no promises about what is left in a struct child_process after a command finishes, and it's not safe to simply reuse it again for a similar command. In particular: - if you use child->args or child->env_array, they are cleared a

Re: [PATCH 3/9] rename "alternate_object_database" to "object_directory"

2018-11-12 Thread Derrick Stolee
On 11/12/2018 9:48 AM, Jeff King wrote: In preparation for unifying the handling of alt odb's and the normal repo object directory, let's use a more neutral name. This patch is purely mechanical, swapping the type name, and converting any variables named "alt" to "odb". There should be no functio

Re: [PATCH 4/9] sha1_file_name(): overwrite buffer instead of appending

2018-11-12 Thread Derrick Stolee
On 11/12/2018 9:48 AM, Jeff King wrote: Since we're changing the semantics, let's take the opportunity to give it a more hash-neutral name (which will also catch any callers from topics in flight). THANK YOU! This method name confused me so much when I was first looking at the code, but the ne

Re: [PATCH 5/9] handle alternates paths the same as the main object dir

2018-11-12 Thread Derrick Stolee
On 11/12/2018 9:49 AM, Jeff King wrote: When we generate loose file paths for the main object directory, the caller provides a buffer to loose_object_path (formerly sha1_file_name). The callers generally keep their own static buffer to avoid excessive reallocations. But for alternate directories

Re: [PATCH 6/9] sha1-file: use an object_directory for the main object dir

2018-11-12 Thread Derrick Stolee
On 11/12/2018 9:50 AM, Jeff King wrote: Our handling of alternate object directories is needlessly different from the main object directory. As a result, many places in the code basically look like this: do_something(r->objects->objdir); for (odb = r->objects->alt_odb_list; odb; odb = odb

<    1   2   3   4   5   6   7   8   9   10   >