aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-10-01 21:56:28 -0700
committerJunio C Hamano <gitster@pobox.com>2011-10-03 11:58:18 -0700
commit81b568c839376a10cd5fe29db0b8a72f537fa36a (patch)
tree375e90f7c9c7f0087562e3cccbb20f82a764e27d
parentc5aa90682f82fe0dabdc0280be93568d52efddfc (diff)
downloadgit-81b568c839376a10cd5fe29db0b8a72f537fa36a.tar.gz
git-81b568c839376a10cd5fe29db0b8a72f537fa36a.tar.xz
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>
-rw-r--r--Documentation/diff-options.txt4
-rw-r--r--diff.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index b620b3afe..5c53bdba9 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -45,6 +45,10 @@ ifndef::git-format-patch[]
Synonym for `-p --raw`.
endif::git-format-patch[]
+--minimal::
+ Spend extra time to make sure the smallest possible
+ diff is produced.
+
--patience::
Generate a diff using the "patience diff" algorithm.
diff --git a/diff.c b/diff.c
index 93ef9a265..c261cc049 100644
--- a/diff.c
+++ b/diff.c
@@ -3385,6 +3385,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
}
/* xdiff options */
+ else if (!strcmp(arg, "--minimal"))
+ DIFF_XDL_SET(options, NEED_MINIMAL);
+ else if (!strcmp(arg, "--no-minimal"))
+ DIFF_XDL_CLR(options, NEED_MINIMAL);
else if (!strcmp(arg, "-w") || !strcmp(arg, "--ignore-all-space"))
DIFF_XDL_SET(options, IGNORE_WHITESPACE);
else if (!strcmp(arg, "-b") || !strcmp(arg, "--ignore-space-change"))