diff: resurrect XDF_NEED_MINIMAL with --minimal

Earlier, 582aa00 (git diff too slow for a file, 2010-05-02) unconditionally dropped XDF_NEED_MINIMAL option from the internal xdiff invocation to help performance on pathological cases, while hinting that a follow-up patch could reintroduce it with "--minimal" option from the command line. Make it so. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Oct 1, 2011 at 21:56 UTC 81b568c839376a10cd5fe29db0b8a72f537fa36a
2 files changed +8
Documentation/diff-options.txt
+4
@@ -45,6 +45,10 @@ ifndef::git-format-patch[]
45 Synonym for `-p --raw`.
46 endif::git-format-patch[]
47
48 +--minimal::
49 + Spend extra time to make sure the smallest possible
50 + diff is produced.
51 +
52 --patience::
53 Generate a diff using the "patience diff" algorithm.
54
diff.c
+4
@@ -3385,6 +3385,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
3385 }
3386
3387 /* xdiff options */
3388 + else if (!strcmp(arg, "--minimal"))
3389 + DIFF_XDL_SET(options, NEED_MINIMAL);
3390 + else if (!strcmp(arg, "--no-minimal"))
3391 + DIFF_XDL_CLR(options, NEED_MINIMAL);
3392 else if (!strcmp(arg, "-w") || !strcmp(arg, "--ignore-all-space"))
3393 DIFF_XDL_SET(options, IGNORE_WHITESPACE);
3394 else if (!strcmp(arg, "-b") || !strcmp(arg, "--ignore-space-change"))