From 81b568c839376a10cd5fe29db0b8a72f537fa36a Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 1 Oct 2011 21:56:28 -0700 Subject: [PATCH] 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 --- Documentation/diff-options.txt | 4 ++++ diff.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index b620b3afec..5c53bdba94 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 93ef9a265c..c261cc049d 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")) -- 2.11.4.GIT