diff: deprecate -q option to diff-files
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>
This commit is contained in:
parent
7f2ea5f0f2
commit
95a7c546b0
@ -86,10 +86,12 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|||||||
{
|
{
|
||||||
int entries, i;
|
int entries, i;
|
||||||
int diff_unmerged_stage = revs->max_count;
|
int diff_unmerged_stage = revs->max_count;
|
||||||
int silent_on_removed = option & DIFF_SILENT_ON_REMOVED;
|
|
||||||
unsigned ce_option = ((option & DIFF_RACY_IS_MODIFIED)
|
unsigned ce_option = ((option & DIFF_RACY_IS_MODIFIED)
|
||||||
? CE_MATCH_RACY_IS_DIRTY : 0);
|
? 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/");
|
diff_set_mnemonic_prefix(&revs->diffopt, "i/", "w/");
|
||||||
|
|
||||||
if (diff_unmerged_stage < 0)
|
if (diff_unmerged_stage < 0)
|
||||||
@ -136,8 +138,6 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|||||||
perror(ce->name);
|
perror(ce->name);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (silent_on_removed)
|
|
||||||
continue;
|
|
||||||
wt_mode = 0;
|
wt_mode = 0;
|
||||||
}
|
}
|
||||||
dpath->mode = wt_mode;
|
dpath->mode = wt_mode;
|
||||||
@ -203,8 +203,6 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
|
|||||||
perror(ce->name);
|
perror(ce->name);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (silent_on_removed)
|
|
||||||
continue;
|
|
||||||
diff_addremove(&revs->diffopt, '-', ce->ce_mode,
|
diff_addremove(&revs->diffopt, '-', ce->ce_mode,
|
||||||
ce->sha1, !is_null_sha1(ce->sha1),
|
ce->sha1, !is_null_sha1(ce->sha1),
|
||||||
ce->name, 0);
|
ce->name, 0);
|
||||||
|
@ -187,7 +187,7 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
{
|
{
|
||||||
int i, prefixlen;
|
int i, prefixlen;
|
||||||
int no_index = 0;
|
int no_index = 0;
|
||||||
unsigned options = 0;
|
unsigned deprecated_show_diff_q_option_used = 0;
|
||||||
const char *paths[2];
|
const char *paths[2];
|
||||||
|
|
||||||
/* Were we asked to do --no-index explicitly? */
|
/* 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"))
|
if (!strcmp(argv[i], "--no-index"))
|
||||||
i++;
|
i++;
|
||||||
else if (!strcmp(argv[i], "-q")) {
|
else if (!strcmp(argv[i], "-q")) {
|
||||||
options |= DIFF_SILENT_ON_REMOVED;
|
deprecated_show_diff_q_option_used = 1;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
else if (!strcmp(argv[i], "--"))
|
else if (!strcmp(argv[i], "--"))
|
||||||
@ -260,6 +260,9 @@ void diff_no_index(struct rev_info *revs,
|
|||||||
revs->max_count = -2;
|
revs->max_count = -2;
|
||||||
diff_setup_done(&revs->diffopt);
|
diff_setup_done(&revs->diffopt);
|
||||||
|
|
||||||
|
if (deprecated_show_diff_q_option_used)
|
||||||
|
handle_deprecated_show_diff_q(&revs->diffopt);
|
||||||
|
|
||||||
setup_diff_pager(&revs->diffopt);
|
setup_diff_pager(&revs->diffopt);
|
||||||
DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS);
|
DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS);
|
||||||
|
|
||||||
|
8
diff.c
8
diff.c
@ -3570,6 +3570,14 @@ static int parse_diff_filter_opt(const char *optarg, struct diff_options *opt)
|
|||||||
return 0;
|
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)
|
int diff_opt_parse(struct diff_options *options, const char **av, int ac)
|
||||||
{
|
{
|
||||||
const char *arg = av[0];
|
const char *arg = av[0];
|
||||||
|
2
diff.h
2
diff.h
@ -341,6 +341,8 @@ extern int parse_rename_score(const char **cp_p);
|
|||||||
|
|
||||||
extern long parse_algorithm_value(const char *value);
|
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,
|
extern int print_stat_summary(FILE *fp, int files,
|
||||||
int insertions, int deletions);
|
int insertions, int deletions);
|
||||||
extern void setup_diff_pager(struct diff_options *);
|
extern void setup_diff_pager(struct diff_options *);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user