X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=revision.c;h=48756b5d4466d06123922573e4330fc4344c1dcb;hb=c05ef93879696638406cad5be54be577a2666d04;hp=51fff0ec5048478392c140a9f2b68c3650220b10;hpb=e92ea62425fb89713bc47241af29a79f5f191cc6;p=git.git diff --git a/revision.c b/revision.c index 51fff0ec5..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")) { @@ -1207,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; } @@ -1252,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;