Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Teach --quiet to diff backends.
author
Junio C Hamano
<junkio@cox.net>
Wed, 14 Mar 2007 18:12:51 +0000
(11:12 -0700)
committer
Junio C Hamano
<junkio@cox.net>
Wed, 14 Mar 2007 23:21:19 +0000
(16:21 -0700)
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>
diff-lib.c
patch
|
blob
|
history
tree-diff.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
68aacb2
)
diff --git
a/diff-lib.c
b/diff-lib.c
index f9a1a10cc0319270358d658cd5e83bd5633fbf49..5c5b05bfe32bc90484b5bd6a9c171e0f9b04fbd6 100644
(file)
--- a/
diff-lib.c
+++ b/
diff-lib.c
@@
-324,6
+324,9
@@
int run_diff_files(struct rev_info *revs, int silent_on_removed)
struct cache_entry *ce = active_cache[i];
int changed;
struct cache_entry *ce = active_cache[i];
int changed;
+ if (revs->diffopt.quiet && revs->diffopt.has_changes)
+ break;
+
if (!ce_path_match(ce, revs->prune_data))
continue;
if (!ce_path_match(ce, revs->prune_data))
continue;
@@
-565,6
+568,9
@@
static int diff_cache(struct rev_info *revs,
struct cache_entry *ce = *ac;
int same = (entries > 1) && ce_same_name(ce, ac[1]);
struct cache_entry *ce = *ac;
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))
goto skip_entry;
if (!ce_path_match(ce, pathspec))
goto skip_entry;
diff --git
a/tree-diff.c
b/tree-diff.c
index c8275823d0eb976e95b256f2bce5497f45d5da77..44cde74caf20ded9cd196c4e5d16f4d9ba251a22 100644
(file)
--- a/
tree-diff.c
+++ b/
tree-diff.c
@@
-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)
{
while (t1->size | t2->size) {
int diff_tree(struct tree_desc *t1, struct tree_desc *t2, const char *base, struct diff_options *opt)
{
while (t1->size | t2->size) {
+ if (opt->quiet && opt->has_changes)
+ break;
if (opt->nr_paths && t1->size && !interesting(t1, base, opt)) {
update_tree_entry(t1);
continue;
if (opt->nr_paths && t1->size && !interesting(t1, base, opt)) {
update_tree_entry(t1);
continue;