]> granicus.if.org Git - git/commitdiff
revision: do not fallback to default when rev_input_given is set
authorJeff King <peff@peff.net>
Wed, 2 Aug 2017 22:30:19 +0000 (18:30 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 2 Aug 2017 22:45:22 +0000 (15:45 -0700)
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>
revision.c
t/t4202-log.sh

index 08d5806b8a0d01f2f1eedcd16f342522945bea23..ba2b166cd67fab9f68c303f2fe300511bf416b4d 100644 (file)
@@ -2316,7 +2316,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
                opt->tweak(revs, opt);
        if (revs->show_merge)
                prepare_show_merge(revs);
-       if (revs->def && !revs->pending.nr && !got_rev_arg) {
+       if (revs->def && !revs->pending.nr && !revs->rev_input_given && !got_rev_arg) {
                struct object_id oid;
                struct object *object;
                struct object_context oc;
index 3f3531f0a49be39e29b20a36a55f0d27f04b4fc8..36d120c969f6c116c2bed19c8bb0c027919d66a9 100755 (executable)
@@ -1523,6 +1523,12 @@ test_expect_success 'log diagnoses bogus HEAD' '
        test_i18ngrep broken stderr
 '
 
+test_expect_success 'log does not default to HEAD when rev input is given' '
+       >expect &&
+       git log --branches=does-not-exist >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'set up --source tests' '
        git checkout --orphan source-a &&
        test_commit one &&