Re: Git commit generation numbers
- From
Phil Hord <hordp@cisco.com>
- Date
- Jul 21, 2011, 00:47 UTC
- Message-ID
- <4E27772B.60306@cisco.com>
- In-Reply-To
- <CAJo=hJuS_iYSS8iVWoJ1BiUANsGtYJoYm-WRa863isVNsq=5vw@mail.gmail.com>
On 07/20/2011 08:37 PM, Shawn Pearce wrote:
Show 12 quoted lines
> On Wed, Jul 20, 2011 at 17:18,<david@lang.hm> wrote: >> if it's just locally generated, then I could easily see generation numbers >> being different on different people's ssstems, dependin on the order that >> they see commits (either locally generated or pulled from others) > But this should only happen if the user fudges with their Git sources > and makes Git produce a different generation number. > > If the algorithm is always "gen(A) = max(gen(P) for each parent_of(A)) > + 1" then it doesn't matter who merged what commits, the same commit > appears at the same part of the graph relative to all of its > ancestors, and therefore always has the same generation number. This > is true whether or not the commit contains the generation number.
Interesting. I was going to disagree with the latter part of your statement, but then I realized you're right.
And that your algorithm allows duplicate generation numbers.
And that there's nothing wrong with that.
Because it meets the one quasi-essential need, "for each A in ancestors_of(B), gen(A) < gen(B)".
Show 10 quoted lines
>> If it's part of the commit, then as that commit gets propogated the >> generation number gets propogated as well, and every repository will agree >> on what the generation number is for any commit that's shared. > This isn't really as beneficial as you are making it out to be. We > already can agree on what the generation number should be for any > given commit, if you topo-sort the commit DAG, you get the same > result. > >> I agree that this consistancy guarantee seems to be valuable. > Its valuable, but its consistent either with a cache, or not.
I still fail to see the value.
Phil