diff options
author | Junio C Hamano <junkio@cox.net> | 2007-03-18 22:48:06 (GMT) |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-18 22:48:06 (GMT) |
commit | d54fe394acbad36e9d0fd960d5e10f2769a8041b (patch) | |
tree | ffd71f86a9a602f4b52d2e518a530d5a2de2921f /diff-lib.c | |
parent | 304de2d2d6afc7500fe9b8f2e22dd0a16a902d8b (diff) | |
parent | 0c66d6be4f888096865b8f3d5fdc00c83e4ecc3f (diff) | |
download | git-d54fe394acbad36e9d0fd960d5e10f2769a8041b.zip git-d54fe394acbad36e9d0fd960d5e10f2769a8041b.tar.gz git-d54fe394acbad36e9d0fd960d5e10f2769a8041b.tar.bz2 |
Merge branch 'ar/diff'
* ar/diff:
Add tests for --quiet option of diff programs
try-to-simplify-commit: use diff-tree --quiet machinery.
revision.c: explain what tree_difference does
Teach --quiet to diff backends.
diff --quiet
Remove unused diffcore_std_no_resolve
Allow git-diff exit with codes similar to diff(1)
Diffstat (limited to 'diff-lib.c')
-rw-r--r-- | diff-lib.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -170,8 +170,10 @@ static int handle_diff_files_args(struct rev_info *revs, else if (!strcmp(argv[1], "--theirs")) revs->max_count = 3; else if (!strcmp(argv[1], "-n") || - !strcmp(argv[1], "--no-index")) + !strcmp(argv[1], "--no-index")) { revs->max_count = -2; + revs->diffopt.exit_with_status = 1; + } else if (!strcmp(argv[1], "-q")) *silent = 1; else @@ -237,6 +239,7 @@ int setup_diff_no_index(struct rev_info *revs, break; } else if (i < argc - 3 && !strcmp(argv[i], "--no-index")) { i = argc - 3; + revs->diffopt.exit_with_status = 1; break; } if (argc != i + 2 || (!is_outside_repo(argv[i + 1], nongit, prefix) && @@ -321,6 +324,9 @@ int run_diff_files(struct rev_info *revs, int silent_on_removed) 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; @@ -562,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]); + if (revs->diffopt.quiet && revs->diffopt.has_changes) + break; + if (!ce_path_match(ce, pathspec)) goto skip_entry; |