Teach --quiet to diff backends.
This teaches git-diff-files, git-diff-index and git-diff-tree backends to exit early under --quiet option. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
68aacb2f3c
commit
822cac0155
@ -324,6 +324,9 @@ int run_diff_files(struct rev_info *revs, int silent_on_removed)
|
|||||||
struct cache_entry *ce = active_cache[i];
|
struct cache_entry *ce = active_cache[i];
|
||||||
int changed;
|
int changed;
|
||||||
|
|
||||||
|
if (revs->diffopt.quiet && revs->diffopt.has_changes)
|
||||||
|
break;
|
||||||
|
|
||||||
if (!ce_path_match(ce, revs->prune_data))
|
if (!ce_path_match(ce, revs->prune_data))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -565,6 +568,9 @@ static int diff_cache(struct rev_info *revs,
|
|||||||
struct cache_entry *ce = *ac;
|
struct cache_entry *ce = *ac;
|
||||||
int same = (entries > 1) && ce_same_name(ce, ac[1]);
|
int same = (entries > 1) && ce_same_name(ce, ac[1]);
|
||||||
|
|
||||||
|
if (revs->diffopt.quiet && revs->diffopt.has_changes)
|
||||||
|
break;
|
||||||
|
|
||||||
if (!ce_path_match(ce, pathspec))
|
if (!ce_path_match(ce, pathspec))
|
||||||
goto skip_entry;
|
goto skip_entry;
|
||||||
|
|
||||||
|
@ -161,6 +161,8 @@ static void show_entry(struct diff_options *opt, const char *prefix, struct tree
|
|||||||
int diff_tree(struct tree_desc *t1, struct tree_desc *t2, const char *base, struct diff_options *opt)
|
int diff_tree(struct tree_desc *t1, struct tree_desc *t2, const char *base, struct diff_options *opt)
|
||||||
{
|
{
|
||||||
while (t1->size | t2->size) {
|
while (t1->size | t2->size) {
|
||||||
|
if (opt->quiet && opt->has_changes)
|
||||||
|
break;
|
||||||
if (opt->nr_paths && t1->size && !interesting(t1, base, opt)) {
|
if (opt->nr_paths && t1->size && !interesting(t1, base, opt)) {
|
||||||
update_tree_entry(t1);
|
update_tree_entry(t1);
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user