X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=revision.c;h=48756b5d4466d06123922573e4330fc4344c1dcb;hb=c05ef93879696638406cad5be54be577a2666d04;hp=038693caba69a9274b632510c9ee8a14a87b6eee;hpb=a6954452ecf757523b31d6eaaf7e00c7a2d91e46;p=git.git diff --git a/revision.c b/revision.c index 038693cab..48756b5d4 100644 --- a/revision.c +++ b/revision.c @@ -896,7 +896,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch continue; argv[i] = NULL; argc = i; - revs->prune_data = get_pathspec(revs->prefix, argv + i + 1); + if (argv[i + 1]) + revs->prune_data = get_pathspec(revs->prefix, argv + i + 1); seen_dashdash = 1; break; } @@ -1023,6 +1024,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch } if (!strcmp(arg, "--cherry-pick")) { revs->cherry_pick = 1; + revs->limited = 1; continue; } if (!strcmp(arg, "--objects")) { @@ -1150,6 +1152,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch die("unknown date format %s", arg); continue; } + if (!strcmp(arg, "--log-size")) { + revs->show_log_size = 1; + continue; + } /* * Grepping the commit log @@ -1203,8 +1209,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i); if (opts > 0) { - if (strcmp(argv[i], "-z")) - revs->diff = 1; i += opts - 1; continue; } @@ -1248,6 +1252,14 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch add_pending_object_with_mode(revs, object, def, mode); } + /* Did the user ask for any diff output? Run the diff! */ + if (revs->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT) + revs->diff = 1; + + /* Pickaxe and rename following needs diffs */ + if (revs->diffopt.pickaxe || revs->diffopt.follow_renames) + revs->diff = 1; + if (revs->topo_order) revs->limited = 1; @@ -1273,6 +1285,9 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch compile_grep_patterns(revs->grep_filter); } + if (revs->reverse && revs->reflog_info) + die("cannot combine --reverse with --walk-reflogs"); + return left; }