Re: Git commit generation numbers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 07/20/2011 08:37 PM, Shawn Pearce wrote:
On Wed, Jul 20, 2011 at 17:18,<david@xxxxxxx>  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)".

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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]