On Thu, Nov 24, 2016 at 9:52 AM, Jun Wu <qu...@fb.com> wrote:

> Excerpts from Augie Fackler's message of 2016-11-17 12:42:26 -0500:
> > My own cursory perfbdiff runs suggest this is a perf wash (using
> > `perfbdiff -m 3041e4d59df2` in the mozilla repo). Queued. Thanks!
>
> I'd mention this series changes the behavior of the diff output. The
> difference was caught by fastannotate test.
>
> See the below table (old: e1d6aa0e4c3a, new: 8836f13e3c5b):
>
>    a | b | old | new
>   --------------------
>    a | a |  a  | -a
>    a | z | +z  |  a
>    a | a |  a  | +z
>      |   | -a  |  a
>   --------------------
>    a | a |     a
>    a | a |     a
>    a |   |    -a
>
> I think we would always prefer putting deletions at the end, to be
> consistent.
>

And herein lies an important distinction: we currently rely on bdiff for
both internal revlog and changegroup delta storage and user presentation
(we iterate bdiff blocks to drive the unified diff printing in
mdiff._unidiff). These are obviously vastly different use cases, with
internal used wanting to optimize for minimal resource consumption in many
cases and user-facing wanting to optimize for human readability.

We can preserve the format of the user-facing diffs by making the bdiff
behavior conditional on various flags or by post-processing the bdiff
output.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to