summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-08-02 22:30:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-08-02 22:45:22 (GMT)
commit5d34d1ac06fe70fc0a7a8f35ddf9e7690114dda7 (patch)
treecaa5584f37f25395ae4121fe660cc3e9a290db56
parent0159ba3226f75fbd6d3dc0e92c325cb11f2f0699 (diff)
downloadgit-5d34d1ac06fe70fc0a7a8f35ddf9e7690114dda7.zip
git-5d34d1ac06fe70fc0a7a8f35ddf9e7690114dda7.tar.gz
git-5d34d1ac06fe70fc0a7a8f35ddf9e7690114dda7.tar.bz2
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>
-rw-r--r--revision.c2
-rwxr-xr-xt/t4202-log.sh6
2 files changed, 7 insertions, 1 deletions
diff --git a/revision.c b/revision.c
index 08d5806..ba2b166 100644
--- a/revision.c
+++ b/revision.c
@@ -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;
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index 3f3531f..36d120c 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -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 &&