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 &&