diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-07-17 17:18:32 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-07-19 15:20:47 -0700 |
commit | 95a7c546b02a962b9e458f7fd2d0ed9b657c0ca6 (patch) | |
tree | cf6d5a0b08a04946f3613c590cc22020ee980484 | |
parent | 7f2ea5f0f2fb056314092cce23202096ca70f076 (diff) | |
download | git-95a7c546b02a962b9e458f7fd2d0ed9b657c0ca6.tar.gz |
diff: deprecate -q option to diff-filesjc/diff-filter-negation
This reimplements the ancient "-q" option to "git diff-files" that
was inherited from "show-diff -q" in terms of "--diff-filter=d". We
will be deprecating the "-q" option, so let's issue a warning when
we do so.
Incidentally this also tentatively fixes "git diff --no-index" to
honor "-q" and hide deletions; the use will get the same warning.
We should remove the support for "-q" in a future version but it is
not that urgent.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | diff-lib.c | 8 | ||||
-rw-r--r-- | diff-no-index.c | 7 | ||||
-rw-r--r-- | diff.c | 8 | ||||
-rw-r--r-- | diff.h | 2 |
4 files changed, 18 insertions, 7 deletions
diff --git a/diff-lib.c b/diff-lib.c index f35de0ffa0..4634b29199 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -86,10 +86,12 @@ int run_diff_files(struct rev_info *revs, unsigned int option) { int entries, i; int diff_unmerged_stage = revs->max_count; - int silent_on_removed = option & DIFF_SILENT_ON_REMOVED; unsigned ce_option = ((option & DIFF_RACY_IS_MODIFIED) ? CE_MATCH_RACY_IS_DIRTY : 0); + if (option & DIFF_SILENT_ON_REMOVED) + handle_deprecated_show_diff_q(&revs->diffopt); + diff_set_mnemonic_prefix(&revs->diffopt, "i/", "w/"); if (diff_unmerged_stage < 0) @@ -136,8 +138,6 @@ int run_diff_files(struct rev_info *revs, unsigned int option) perror(ce->name); continue; } - if (silent_on_removed) - continue; wt_mode = 0; } dpath->mode = wt_mode; @@ -203,8 +203,6 @@ int run_diff_files(struct rev_info *revs, unsigned int option) perror(ce->name); continue; } - if (silent_on_removed) - continue; diff_addremove(&revs->diffopt, '-', ce->ce_mode, ce->sha1, !is_null_sha1(ce->sha1), ce->name, 0); diff --git a/diff-no-index.c b/diff-no-index.c index 74da659368..a788a5f304 100644 --- a/diff-no-index.c +++ b/diff-no-index.c @@ -187,7 +187,7 @@ void diff_no_index(struct rev_info *revs, { int i, prefixlen; int no_index = 0; - unsigned options = 0; + unsigned deprecated_show_diff_q_option_used = 0; const char *paths[2]; /* Were we asked to do --no-index explicitly? */ @@ -225,7 +225,7 @@ void diff_no_index(struct rev_info *revs, if (!strcmp(argv[i], "--no-index")) i++; else if (!strcmp(argv[i], "-q")) { - options |= DIFF_SILENT_ON_REMOVED; + deprecated_show_diff_q_option_used = 1; i++; } else if (!strcmp(argv[i], "--")) @@ -260,6 +260,9 @@ void diff_no_index(struct rev_info *revs, revs->max_count = -2; diff_setup_done(&revs->diffopt); + if (deprecated_show_diff_q_option_used) + handle_deprecated_show_diff_q(&revs->diffopt); + setup_diff_pager(&revs->diffopt); DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS); @@ -3570,6 +3570,14 @@ static int parse_diff_filter_opt(const char *optarg, struct diff_options *opt) return 0; } +/* Used only by "diff-files" and "diff --no-index" */ +void handle_deprecated_show_diff_q(struct diff_options *opt) +{ + warning("'diff -q' and 'diff-files -q' are deprecated."); + warning("Use 'diff --diff-filter=d' instead to ignore deleted filepairs."); + parse_diff_filter_opt("d", opt); +} + int diff_opt_parse(struct diff_options *options, const char **av, int ac) { const char *arg = av[0]; @@ -341,6 +341,8 @@ extern int parse_rename_score(const char **cp_p); extern long parse_algorithm_value(const char *value); +extern void handle_deprecated_show_diff_q(struct diff_options *); + extern int print_stat_summary(FILE *fp, int files, int insertions, int deletions); extern void setup_diff_pager(struct diff_options *); |