Thread (3 messages) flat view 3 messages, 2 authors, 2020-05-26

Re: [BUG] diff algorithm selection issue

From: <hidden>
Date: 2020-05-26 17:21:30

quoted
quoted
When the config has diff.algorithm=patience set, "git diff
--minimal" seems to
be ignored, and does not give the same output as "git diff
--diff-algorithm=minimal",
but really the same as "git diff --diff-algorithm=patience".
As I wrote, that is absolutely the intended behaviour.

When patience and other algorithm learns how to trade cycles off
with output size, --minimal may make a difference, but unlike
"--diff-algorithm=minimal" that forces Myers algorithm, the
"--minimal" option should not change the underlying algorithm.
OK, so then the problem is just in the doc, where
--diff-algorithm=minimal
should rather be documented as something like:

 The basic greedy "myers" diff algorithm, spending extra time to make
 sure the smallest possible diff is produced (equivalent to
 `--diff-algorithm=myers --minimal`).

Or is it rather intended to be `--diff-algorithm=default --minimal`,
whatever the default may be in the future ?
Now that I think about it, do we really want "minimal" as a valid choice
for --diff-algorithm, if it's not a choice of algorithm ?

In that case, we may need a separate config option line diff.algorithm.minimal
or maybe diff.algorithm.tuning ?

As for the other flags, --patience and --histogram should probably
documented as backward-compatibility aliases for --diff-algorithm=,
right ?


I'll send a formal patch if all of this sounds good.


And as a last point, there would be the problem shown by patience
diff
on the commit referenced in my original post - If patience is still
considered for promotion to default some day, I guess we wouldn't
want
it to make such a bad choice.

Best regards,
--
Yann
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help