static const char *pickaxe = NULL;
static int pickaxe_opts = 0;
static int diff_break_opt = -1;
+static const char *orderfile = NULL;
/* A file entry went away or appeared */
static void show_file(const char *prefix, struct cache_entry *ce, unsigned char *sha1, unsigned int mode)
}
static char *diff_cache_usage =
-"git-diff-cache [-p] [-r] [-z] [-m] [-M] [-C] [-R] [-S<string>] [--cached] <tree-ish> [<path>...]";
+"git-diff-cache [-p] [-r] [-z] [-m] [-M] [-C] [-R] [-S<string>] [-O<orderfile>] [--cached] <tree-ish> [<path>...]";
int main(int argc, const char **argv)
{
continue;
}
if (!strncmp(arg, "-B", 2)) {
- diff_break_opt = diff_scoreopt_parse(arg);
+ if ((diff_break_opt = diff_scoreopt_parse(arg)) == -1)
+ usage(diff_cache_usage);
continue;
}
if (!strncmp(arg, "-M", 2)) {
detect_rename = DIFF_DETECT_RENAME;
- diff_score_opt = diff_scoreopt_parse(arg);
+ if ((diff_score_opt = diff_scoreopt_parse(arg)) == -1)
+ usage(diff_cache_usage);
continue;
}
if (!strncmp(arg, "-C", 2)) {
detect_rename = DIFF_DETECT_COPY;
- diff_score_opt = diff_scoreopt_parse(arg);
+ if ((diff_score_opt = diff_scoreopt_parse(arg)) == -1)
+ usage(diff_cache_usage);
continue;
}
if (!strcmp(arg, "-z")) {
pickaxe = arg + 2;
continue;
}
+ if (!strncmp(arg, "-O", 2)) {
+ orderfile = arg + 2;
+ continue;
+ }
if (!strcmp(arg, "--pickaxe-all")) {
pickaxe_opts = DIFF_PICKAXE_ALL;
continue;
diffcore_std(pathspec ? : NULL,
detect_rename, diff_score_opt,
pickaxe, pickaxe_opts,
- diff_break_opt);
+ diff_break_opt,
+ orderfile);
diff_flush(diff_output_format, 1);
return ret;
}