Re: ds/generation-numbers (was Re: What's cooking in git.git (Jun 2018, #01; Fri, 1))

2018-06-01 Thread Derrick Stolee

On 6/1/2018 7:15 PM, Junio C Hamano wrote:

Derrick Stolee  writes:

   A recently added "commit-graph" datafile has learned to store
   pre-computed generation numbers to speed up the decisions to stop
   history traversal.

   Will cook in 'next'.

On Wednesday, these were marked as "Will merge to 'master'" What changed?

Nothing has changed.  "Will merge to 'master'" means "This is now in
'next', and unless there is some blocking breakage found, this topic
will be merged to 'master' eventually".  It does not even say if
that eventuality is before or after the release the current cycle is
working towards.

When it comes near pre-release feature freeze, things in 'next' need
to be sifted into various bins, and their labels are updated.  The
ones that are too big to be comfortably merged to the upcoming
release after -rc0 has passed (i.e. biggies are better merged early
to the 'master' in the cycle to give it full cycle of larger
exposure) will be kept in 'next' so that it can go first after the
final, the ones that are low risk but with higher importance will be
merged to 'master' before the release, the ones that are trivial,
distracting and lower value (i.e.  the ones that force i18n teams
extra work) may be held in 'next', and the ones that deserve a
chance to freshly restart are marked to be kicked back to 'pu'.
Etc. etc.


Thanks, Junio. This explanation is what I expected. I suppose the small 
extra bit of information of "Will cook in 'next' until after next 
release" would have answered my question in advance. Thanks for the 
patience as I get used to your workflow.


I am a little disappointed this didn't make 2.18 because this gives some 
of the biggest speedups for typically painful computations (like 'git 
branch --contains'). The generation numbers are what give us more than a 
constant-multiple speedup; what is in master only parses commit 
relationships faster, doesn't reduce the number of commits walked. It 
also means we will release a version of Git that writes commit-graph 
file with GENERATION_ZERO and so we will never be able to deprecate that 
logic in the code.


Thanks,

-Stolee




Re: ds/generation-numbers (was Re: What's cooking in git.git (Jun 2018, #01; Fri, 1))

2018-06-01 Thread Junio C Hamano
Derrick Stolee  writes:
>>   A recently added "commit-graph" datafile has learned to store
>>   pre-computed generation numbers to speed up the decisions to stop
>>   history traversal.
>>
>>   Will cook in 'next'.
>
> On Wednesday, these were marked as "Will merge to 'master'" What changed?

Nothing has changed.  "Will merge to 'master'" means "This is now in
'next', and unless there is some blocking breakage found, this topic
will be merged to 'master' eventually".  It does not even say if
that eventuality is before or after the release the current cycle is
working towards.

When it comes near pre-release feature freeze, things in 'next' need
to be sifted into various bins, and their labels are updated.  The
ones that are too big to be comfortably merged to the upcoming
release after -rc0 has passed (i.e. biggies are better merged early
to the 'master' in the cycle to give it full cycle of larger
exposure) will be kept in 'next' so that it can go first after the
final, the ones that are low risk but with higher importance will be
merged to 'master' before the release, the ones that are trivial,
distracting and lower value (i.e.  the ones that force i18n teams
extra work) may be held in 'next', and the ones that deserve a
chance to freshly restart are marked to be kicked back to 'pu'.
Etc. etc.



ds/generation-numbers (was Re: What's cooking in git.git (Jun 2018, #01; Fri, 1))

2018-06-01 Thread Derrick Stolee

On 6/1/2018 3:21 AM, Junio C Hamano wrote:


* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
   (merged to 'next' on 2018-05-24 at 3d12a02b0c)
  + commit-graph: fix UX issue when .lock file exists
  (this branch is used by ds/commit-graph-fsck; uses ds/generation-numbers.)

  Update to ds/generation-numbers topic.

  Wait for ds/generation-numbers


* ds/generation-numbers (2018-05-22) 11 commits
   (merged to 'next' on 2018-05-24 at 56fc38a1b6)
  + commit-graph.txt: update design document
  + merge: check config before loading commits
  + commit: use generation number in remove_redundant()
  + commit: add short-circuit to paint_down_to_common()
  + commit: use generation numbers for in_merge_bases()
  + ref-filter: use generation number for --contains
  + commit-graph: always load commit-graph information
  + commit: use generations in paint_down_to_common()
  + commit-graph: compute generation numbers
  + commit: add generation number to struct commit
  + ref-filter: fix outdated comment on in_commit_list
  (this branch is used by ds/commit-graph-fsck and 
ds/commit-graph-lockfile-fix.)

  A recently added "commit-graph" datafile has learned to store
  pre-computed generation numbers to speed up the decisions to stop
  history traversal.

  Will cook in 'next'.


On Wednesday, these were marked as "Will merge to 'master'" What changed?

Thanks,
-Stolee