Jakub Narebski <jnareb@xxxxxxxxx> writes: > Jakub Narebski <jnareb@xxxxxxxxx> writes: >> Stefan Beller <sbeller@xxxxxxxxxx> writes: > [...] >>> How would this impact creation of a commit? >>> >>> The current generation numbers can be lazily updated or not >>> updated at all. In my understanding of the maximum generation >>> numbers, a new commit would make these maximum generation >>> numbers invalid (i.e. they have to be recomputed). > [...] >>> For the V2 maximum generation numbers, would we need to >>> rewrite the numbers for all commits once we recompute them? >>> Assuming that is true, it sounds like the benchmark doesn't >>> cover the whole costs associated with V2, which is why the >>> exceptional performance can be explained. >> >> Let's check it using a simple example >> >> First, (minimum) parent-based generation numbers before and after >> extending the commit graph: >> >> 1 2 3 4 5 6 7 new >> 1 2 3 4 5 - - old >> .---.-----.---.-----.---*---* >> \ >> \ 3 4 5 6 new >> \ 3 4 5 6 old >> \-.---.-----.---. >> \ >> \ 5 new >> \ - old >> \-* > > Let me check yet another idea, using (minimum) parent-based V0 generation > numbers (counting distance from the sink / root) as a starting number > for source / heads commits. [...] > [...] but let's check another example > > 1 2 3 4 5 6 7 8 9 new > 1 2 3 4 5 6 7 8 - old > .---.-----.---.---.---.-----.---.---* > \ / > \ 3 4 / 5 6 7 8 new > \ 5 6 / - - - - old > \-.---.---------/---*---*---*---* But let's do this correctly. 1 2 3 4 5 6 7 8 9 new 1 2 3 4 5 6 7 8 - old .---.-----.---.------.---.-----.---.---* \ / \ 3 4 / new \ 5 6 / old \-.---.------------/ \ \ 5 6 7 8 new \ - - - - old \--*---*-----*---* Well, it looks as if I draw it incorrectly, but performed calculations right. You may need to modify / change some data, but it looks as if it is not that much of a problem. The new version of the maximum generation numbers looks like it gives the same results as generation numbers for the "longest" path, and update may affect only the side-branches that were added to. All branches merged into the trunk, and not added to should be safe with respect to updating. Can anyone here prove a thing about update of those modified maximum generation numbers? Thanks in advance. Best, -- Jakub Narębski