Re: [PATCH 2/6] commit: add generation number to struct commmit
- From
Stefan Beller <sbeller@google.com>
- Date
- Apr 3, 2018, 18:44 UTC
- Message-ID
- <CAGZ79kYeKmWidi0SqV_R6NhWrH1rT-rTXetRfZ_YBpycieFxgw@mail.gmail.com>
- In-Reply-To
- <20180403182800.GA8377@sigill.intra.peff.net>
On Tue, Apr 3, 2018 at 11:28 AM, Jeff King <peff@peff.net> wrote:
Show 16 quoted lines
> On Tue, Apr 03, 2018 at 11:05:36AM -0700, Brandon Williams wrote: > >> On 04/03, Derrick Stolee wrote: >> > The generation number of a commit is defined recursively as follows: >> > >> > * If a commit A has no parents, then the generation number of A is one. >> > * If a commit A has parents, then the generation number of A is one >> > more than the maximum generation number among the parents of A. >> > >> > Add a uint32_t generation field to struct commit so we can pass this >> >> Is there any reason to believe this would be too small of a value in the >> future? Or is a 32 bit unsigned good enough? > > The linux kernel took ~10 years to produce 500k commits. Even assuming > those were all linear (and they're not),
... which you meant in terms of DAG, where a linear history is the worst case for generation numbers.
I first read it the other way round, as the best case w.r.t. timing
~/linux$ git log --oneline |wc -l 721223 $ git log --oneline --since 2012 |wc -l 421853 $ git log --oneline --since 2011 |wc -l 477155
The number of commits is growing exponentially, though the exponential part is very small and the YoY growth can be estimated using linear interpolation.
In linux, the release is a natural synchronization point IIUC as well as on a regular schedule. So an interesting question to ask there would be whether the delta in generation number goes up over time, or if the DAG just gets wider (=more parallel)
> that gives us ~80,000 years of > leeway. So even if the pace of development speeds up or we have a > quicker project, it still seems we have a pretty reasonable safety > margin.
Thanks for the estimate. Stefan