summaryrefslogtreecommitdiff
path: root/diff-lib.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-08-16 11:23:25 -0700
committerJunio C Hamano <gitster@pobox.com>2011-08-16 11:23:25 -0700
commitf253376dcbadb384d8c8af287c3f9e2271cb5ff4 (patch)
tree32382322a78e71a1552daec2d64582647e2190e1 /diff-lib.c
parente10e476fb170a99ecc535a31def69d5e3483a859 (diff)
parentb4194828dc00e97dcd07ecb4bb4f87650a6fca1d (diff)
downloadgit-f253376dcbadb384d8c8af287c3f9e2271cb5ff4.tar.gz
Merge branch 'jc/diff-index-quick-exit-early' into maint
* jc/diff-index-quick-exit-early: diff-index --quiet: learn the "stop feeding the backend early" logic Conflicts: unpack-trees.h
Diffstat (limited to 'diff-lib.c')
-rw-r--r--diff-lib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/diff-lib.c b/diff-lib.c
index 9c29293bbc..2e09500c82 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -433,8 +433,13 @@ static int oneway_diff(struct cache_entry **src, struct unpack_trees_options *o)
if (tree == o->df_conflict_entry)
tree = NULL;
- if (ce_path_match(idx ? idx : tree, &revs->prune_data))
+ if (ce_path_match(idx ? idx : tree, &revs->prune_data)) {
do_oneway_diff(o, idx, tree);
+ if (diff_can_quit_early(&revs->diffopt)) {
+ o->exiting_early = 1;
+ return -1;
+ }
+ }
return 0;
}