revision: do not fallback to default when rev_input_given is set

If revs->def is set (as it is in "git log") and there are no pending objects after parsing the user's input, then we show whatever is in "def". But if the user _did_ ask for some input that just happened to be empty (e.g., "--glob" that does not match anything), showing the default revision is confusing. We should just show nothing, as that is what the user's request yielded. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Aug 2, 2017 at 18:30 UTC 5d34d1ac06fe70fc0a7a8f35ddf9e7690114dda7
2 files changed +7 -1
revision.c
+1 -1
@@ -2316,7 +2316,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
2316 opt->tweak(revs, opt);
2317 if (revs->show_merge)
2318 prepare_show_merge(revs);
2319 - if (revs->def && !revs->pending.nr && !got_rev_arg) {
2319 + if (revs->def && !revs->pending.nr && !revs->rev_input_given && !got_rev_arg) {
2320 struct object_id oid;
2321 struct object *object;
2322 struct object_context oc;
t/t4202-log.sh
+6
@@ -1523,6 +1523,12 @@ test_expect_success 'log diagnoses bogus HEAD' '
1523 test_i18ngrep broken stderr
1524 '
1525
1526 +test_expect_success 'log does not default to HEAD when rev input is given' '
1527 + >expect &&
1528 + git log --branches=does-not-exist >actual &&
1529 + test_cmp expect actual
1530 +'
1531 +
1532 test_expect_success 'set up --source tests' '
1533 git checkout --orphan source-a &&
1534 test_commit one &&