From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: Stefan Beller <stefanbeller@googlemail.com>
Subject: [PATCH 6/6] diff: deprecate -q option to diff-files
Date: Wed, 17 Jul 2013 17:30:06 -0700 [thread overview]
Message-ID: <1374107406-14357-7-git-send-email-gitster@pobox.com> (raw)
In-Reply-To: <1374107406-14357-1-git-send-email-gitster@pobox.com>
This reimplements the ancient "-q" option to "git diff-files" that
was inherited from "show-diff -q" in terms of "--diff-filter=d", and
issue a warning against the use of the former.
Incidentally this also tentatively fix "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 Git 2.0.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
diff-lib.c | 8 +++-----
diff-no-index.c | 7 +++++--
diff.c | 8 ++++++++
diff.h | 2 ++
4 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/diff-lib.c b/diff-lib.c
index f35de0f..4634b29 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 74da659..a788a5f 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);
diff --git a/diff.c b/diff.c
index 2d0b5e3..78819ba 100644
--- a/diff.c
+++ b/diff.c
@@ -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];
diff --git a/diff.h b/diff.h
index a367207..5237d63 100644
--- a/diff.h
+++ b/diff.h
@@ -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 *);
--
1.8.3.3-962-gf04df43
next prev parent reply other threads:[~2013-07-18 0:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-14 21:35 [PATCH 1/4] daemon.c:handle: Remove unneeded check for null pointer Stefan Beller
2013-07-14 21:35 ` [PATCH 2/4] commit: Fix a memory leak in determine_author_info Stefan Beller
2013-07-14 21:49 ` Jonathan Nieder
2013-07-14 21:35 ` [PATCH 3/4] diff-no-index: Remove unused variable Stefan Beller
2013-07-14 22:07 ` Jonathan Nieder
2013-07-16 10:28 ` [PATCH 0/2] git diff -q option removal Stefan Beller
2013-07-16 10:28 ` [PATCH 1/2] diff --no-index: remove nonfunctional "-q" handling Stefan Beller
2013-07-16 10:28 ` [PATCH 2/2] diff: Remove -q to stay silent on missing files Stefan Beller
2013-07-17 17:04 ` [PATCH 0/2] git diff -q option removal Junio C Hamano
2013-07-17 18:06 ` Junio C Hamano
2013-07-17 20:05 ` Stefan Beller
2013-07-18 0:30 ` [PATCH 0/6] Deprecating "diff-files -q" Junio C Hamano
2013-07-18 0:30 ` [PATCH 1/6] diff: pass the whole diff_options to diffcore_apply_filter() Junio C Hamano
2013-07-18 0:30 ` [PATCH 2/6] diff: factor out match_filter() Junio C Hamano
2013-07-18 0:30 ` [PATCH 3/6] diff: preparse --diff-filter string argument Junio C Hamano
2013-07-18 0:30 ` [PATCH 4/6] diff: reject unknown change class given to --diff-filter Junio C Hamano
2013-07-18 0:30 ` [PATCH 5/6] diff: allow lowercase letter to specify what change class to exclude Junio C Hamano
2013-07-18 0:30 ` Junio C Hamano [this message]
2013-07-19 3:20 ` [PATCH 7/6] diff: remove "diff-files -q" at Git 2.0 version boundary Junio C Hamano
2013-07-19 3:31 ` [PATCH 6/6] diff: deprecate -q option to diff-files Jonathan Nieder
2013-07-19 7:24 ` Junio C Hamano
2013-07-19 21:01 ` Jonathan Nieder
2013-07-14 21:35 ` [PATCH 4/4] diff.c: Do not initialize a variable, which gets reassigned anyway Stefan Beller
2013-07-14 22:18 ` Jonathan Nieder
2013-07-14 21:48 ` [PATCH 1/4] daemon.c:handle: Remove unneeded check for null pointer Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1374107406-14357-7-git-send-email-gitster@pobox.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=stefanbeller@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).