Re: [PATCH 1/2] line-log: fix assertion error
SZEDER Gábor <szeder.dev@gmail.com> writes:
Show 26 quoted lines
> - When a commit modifies an interesting path, the line-log machinery
> first checks which diff range (i.e. hunk) modify any line ranges.
> This is done in diff_ranges_filter_touched(), where the outer loop
> iterates over the diff ranges, and in each iteration the inner
> loop advances the line ranges supposedly until the current line
> range ends at or after the current diff range starts, and then the
> current diff and line ranges are checked for overlap.
> ...
> Fix that loop condition in diff_ranges_filter_touched() to not
> treat 'end' as part of the line range.
>
> - With the above fix the assertion error is gone... but, alas, we
> now get stuck in an endless loop!
> ...
> Fix this condition in range_set_difference() to not treat 'end' as
> part of the line range.
>
> - With the above fix the endless loop is gone... but, alas, the
> output is now wrong, as it shows both line ranges for HEAD, even
> though the first line range is not modified by that commit:
> ...
> Fix this condition to not treat 'end' as part of the line range,
> just like in the previous cases.
>
> After all this the command in the above example finally finishes and
> produces the right output:
What a lengthy journey X-<.
Thanks for an amusing description.