Re: [PATCH 6/6] diff: deprecate -q option to diff-files

2013-07-19 Thread Junio C Hamano
Jonathan Nieder jrnie...@gmail.com writes:

 Junio C Hamano wrote:

 We should remove the support for -q in Git 2.0.

 No.  I hope you are teasing.

 I don't mind seeing support for -q dropped, but I really don't think
 it's worth delaying git 2.0 for that.  Would s/in Git 2.0/in some
 future release/ be ok?

I do not think keeping the support for -q in is any huge burden.
We do not have to remove it, forever, for that matter.

The option is so obscure that (1) I would suspect that only a few
very old scripts would use it, (2) even the users who use such a
script every day would not know what the script is doing with the
option, and (3) we would not know if such scripts exist until a long
time passes after we include patches up to this step in a released
version.

That is why the patch 7/6 rolls the removal into a version bump at
which we promised to have a bunch of backward incompatible changes
to people.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/6] diff: deprecate -q option to diff-files

2013-07-19 Thread Jonathan Nieder
Junio C Hamano wrote:
 Jonathan Nieder jrnie...@gmail.com writes:

 I don't mind seeing support for -q dropped, but I really don't think
 it's worth delaying git 2.0 for that.  Would s/in Git 2.0/in some
 future release/ be ok?

 I do not think keeping the support for -q in is any huge burden.
 We do not have to remove it, forever, for that matter.

I agree with the above, which is why I don't want a promise to remove
the -q option to cause Git 2.0 to be delayed.  It would be better to
schedule it for Git 3.0, or for another unspecified future git
release.

I thought the 2.0 boundary was a time for changes that everyone
already knew we should make, where we had been waiting for a good
moment to change behavior while giving people adequate warning to
avoid disrupting them too much.  We have a good collection of those
for 2.0, and the next batch can wait until 3.0.

Sorry for the lack of clarity,
Jonathan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/6] diff: deprecate -q option to diff-files

2013-07-18 Thread Jonathan Nieder
Junio C Hamano wrote:

 We should remove the support for -q in Git 2.0.

No.  I hope you are teasing.

I don't mind seeing support for -q dropped, but I really don't think
it's worth delaying git 2.0 for that.  Would s/in Git 2.0/in some
future release/ be ok?

The patch text itself looks good.

Thanks,
Jonathan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 6/6] diff: deprecate -q option to diff-files

2013-07-17 Thread Junio C Hamano
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 gits...@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

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html