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