summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2017-03-23 13:05:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-03-23 17:02:55 (GMT)
commitb643827b9443deadaa5804998116107953f8b42f (patch)
tree65895323f1ac1d845753039b81259b0ee493e578
parent17d6c744dc0d5ed4cd0f228da14239ea2654f05b (diff)
downloadgit-b643827b9443deadaa5804998116107953f8b42f.zip
git-b643827b9443deadaa5804998116107953f8b42f.tar.gz
git-b643827b9443deadaa5804998116107953f8b42f.tar.bz2
ref-filter: add test for --contains on a non-commit
Change the tag test suite to test for --contains on a tree & blob. It only accepts commits and will spew out "<object> is a tree, not a commit". It's sufficient to test this just for the "tag" and "branch" commands, because it covers all the machinery shared between "branch" and "for-each-ref". Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t3201-branch-contains.sh9
-rwxr-xr-xt/t7004-tag.sh4
2 files changed, 12 insertions, 1 deletions
diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh
index 7f3ec47..daa3ae8 100755
--- a/t/t3201-branch-contains.sh
+++ b/t/t3201-branch-contains.sh
@@ -130,6 +130,15 @@ test_expect_success 'implicit --list conflicts with modification options' '
'
+test_expect_success 'Assert that --contains only works on commits, not trees & blobs' '
+ test_must_fail git branch --contains master^{tree} &&
+ blob=$(git hash-object -w --stdin <<-\EOF
+ Some blob
+ EOF
+ ) &&
+ test_must_fail git branch --contains $blob
+'
+
# We want to set up a case where the walk for the tracking info
# of one branch crosses the tip of another branch (and make sure
# that the latter walk does not mess up our flag to see if it was
diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
index 4579066..3439913 100755
--- a/t/t7004-tag.sh
+++ b/t/t7004-tag.sh
@@ -1461,7 +1461,9 @@ test_expect_success 'mixing incompatibles modes and options is forbidden' '
test_must_fail git tag -n 100 &&
test_must_fail git tag -l -m msg &&
test_must_fail git tag -l -F some file &&
- test_must_fail git tag -v -s
+ test_must_fail git tag -v -s &&
+ test_must_fail git tag --contains tag-tree &&
+ test_must_fail git tag --contains tag-blob
'
# check points-at