Merge branch 'jc/maint-diff-q-filter'
authorJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2011 21:55:17 +0000 (14:55 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Mar 2011 21:55:17 +0000 (14:55 -0700)
* jc/maint-diff-q-filter:
  diff --quiet: disable optimization when --diff-filter=X is used

diff-lib.c
t/t4040-whitespace-status.sh

index 1e22992..2870de4 100644 (file)
@@ -103,7 +103,8 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
                unsigned dirty_submodule = 0;
 
                if (DIFF_OPT_TST(&revs->diffopt, QUICK) &&
-                       DIFF_OPT_TST(&revs->diffopt, HAS_CHANGES))
+                   !revs->diffopt.filter &&
+                   DIFF_OPT_TST(&revs->diffopt, HAS_CHANGES))
                        break;
 
                if (!ce_path_match(ce, &revs->prune_data))
index a30b03b..abc4934 100755 (executable)
@@ -60,4 +60,11 @@ test_expect_success 'diff-files -b -p --exit-code' '
        git diff-files -b -p --exit-code
 '
 
+test_expect_success 'diff-files --diff-filter --quiet' '
+       git reset --hard &&
+       rm a/d &&
+       echo x >>b/e &&
+       test_must_fail git diff-files --diff-filter=M --quiet
+'
+
 test_done