diff options
author | Paul Sherwood <paul.sherwood@codethink.co.uk> | 2014-04-29 20:37:28 +0000 |
---|---|---|
committer | Paul Sherwood <paul.sherwood@codethink.co.uk> | 2014-04-29 20:37:28 +0000 |
commit | e98c205a5c3fb893ffdda3f5e05d1967b4a79c1d (patch) | |
tree | 3ecbd4f05ab9601cefa7b322323039795db440a9 /diff-no-index.c | |
parent | 43efcf42382e87de4aa423e5e1607958ad1717d0 (diff) | |
parent | 0bc85abb7aa9b24b093253018801a0fb43d01122 (diff) | |
download | git-baserock/ps/update-git.tar.gz |
Merge tag 'v1.9.2' into HEADbaserock/ps/update-git
Git 1.9.2
Diffstat (limited to 'diff-no-index.c')
-rw-r--r-- | diff-no-index.c | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/diff-no-index.c b/diff-no-index.c index e66fdf33da..798477f7e5 100644 --- a/diff-no-index.c +++ b/diff-no-index.c @@ -183,56 +183,26 @@ static int queue_diff(struct diff_options *o, void diff_no_index(struct rev_info *revs, int argc, const char **argv, - int nongit, const char *prefix) + const char *prefix) { 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? */ - for (i = 1; i < argc; i++) { - if (!strcmp(argv[i], "--")) { - i++; - break; - } - if (!strcmp(argv[i], "--no-index")) - no_index = 1; - if (argv[i][0] != '-') - break; - } - - if (!no_index && !nongit) { - /* - * Inside a git repository, without --no-index. Only - * when a path outside the repository is given, - * e.g. "git diff /var/tmp/[12]", or "git diff - * Makefile /var/tmp/Makefile", allow it to be used as - * a colourful "diff" replacement. - */ - if ((argc != i + 2) || - (path_inside_repo(prefix, argv[i]) && - path_inside_repo(prefix, argv[i+1]))) - return; - } - if (argc != i + 2) - usagef("git diff %s <path> <path>", - no_index ? "--no-index" : "[--no-index]"); - diff_setup(&revs->diffopt); for (i = 1; i < argc - 2; ) { int j; 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], "--")) i++; else { j = diff_opt_parse(&revs->diffopt, argv + i, argc - i); - if (!j) + if (j <= 0) die("invalid diff option/value: %s", argv[i]); i += j; } @@ -260,6 +230,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); |