Derrick Stolee <[email protected]> writes:
> On 5/20/2019 7:27 PM, Jakub Narebski wrote:
>> Jakub Narebski <[email protected]> writes:
>>> Derrick Stolee <[email protected]> writes:
>>>> On 5/20/2019 7:02 AM, Jakub Narebski wrote:
>>>>>
>>>>> Are there any blockers that prevent the switch to this
>>>>> "generation number v2"?
>> [...]
>>
>>>> Using the generation number column for the corrected
>>>> commit-date offsets (assuming we also guarantee the offset is strictly
>>>> increasing from parent to child), these new values will be backwards-
>>>> compatible _except_ for 'git commit-graph verify'.
>>>
>>> O.K., so the "generation number v2 (legacy)" would be incremental and
>>> backward-compatibile in use (though not in generation and validation).
>>>
>>> Do I understand it correctly how it is calculated:
>>>
>>> corrected_date(C) = max(committer_date(C),
>>> max_{P ∈ parents(C)}(corrected_date(P)) + 1)
>>
>> This should probably read
>>
>> offset_date(P) = committer_date(P) + gen_v2(P)
>> corrected_date(C) = max(committer_date(C),
>> max_{P ∈ parents(C)}(offset_date(P)) + 1)
Restating it yet again:
A. corrected_date(C) = max(committer_date(C),
max_P(committer_date(P) + offset(P)) + 1)
B. offset(C) = max(corrected_date(C) - committer_date(C),
max_P(offset(P)) + 1)
> The final definition needs two conditions on the offset of a commit C for
> every parent P:
>
> 1. committer_date(C) + offset(C) > committer_date(P) + offset(P)
> 2. offset(C) > offset(P)
The equation (B) ensures the (2) condition, i.e offset(C) > offset(P).
The equation (A) ensures that condition (1) is fulfulled, because from
(B) we have
corrected_date(C) <= committer_date(C) + offset(C)
This from (B) and (A( we get:
committer_date(C) + offset(C) >= corrected_date(C) >
> committer_date(P) + offset(P)
> Condition (1) will give us the performance benefits related to the
> committer-date heuristic. Condition (2) will give us backwards-compatibility
> with generation numbers.
Well, we should check/test if performance benefits of "offset date"
("corrected date with rising offset") truly holds.
Best,
--
Jakub Narębski