Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
git/t/t6302-for-each-ref-filter.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
84 lines (74 sloc)
1.85 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
test_description='test for-each-refs usage of ref-filter APIs' | |
. ./test-lib.sh | |
. "$TEST_DIRECTORY"/lib-gpg.sh | |
if ! test_have_prereq GPG | |
then | |
skip_all="skipping for-each-ref tests, GPG not available" | |
test_done | |
fi | |
test_expect_success 'setup some history and refs' ' | |
test_commit one && | |
test_commit two && | |
test_commit three && | |
git checkout -b side && | |
test_commit four && | |
git tag -s -m "A signed tag message" signed-tag && | |
git tag -s -m "Annonated doubly" double-tag signed-tag && | |
git checkout master && | |
git update-ref refs/odd/spot master | |
' | |
test_expect_success 'filtering with --points-at' ' | |
cat >expect <<-\EOF && | |
refs/heads/master | |
refs/odd/spot | |
refs/tags/three | |
EOF | |
git for-each-ref --format="%(refname)" --points-at=master >actual && | |
test_cmp expect actual | |
' | |
test_expect_success 'check signed tags with --points-at' ' | |
sed -e "s/Z$//" >expect <<-\EOF && | |
refs/heads/side Z | |
refs/tags/four Z | |
refs/tags/signed-tag four | |
EOF | |
git for-each-ref --format="%(refname) %(*subject)" --points-at=side >actual && | |
test_cmp expect actual | |
' | |
test_expect_success 'filtering with --merged' ' | |
cat >expect <<-\EOF && | |
refs/heads/master | |
refs/odd/spot | |
refs/tags/one | |
refs/tags/three | |
refs/tags/two | |
EOF | |
git for-each-ref --format="%(refname)" --merged=master >actual && | |
test_cmp expect actual | |
' | |
test_expect_success 'filtering with --no-merged' ' | |
cat >expect <<-\EOF && | |
refs/heads/side | |
refs/tags/double-tag | |
refs/tags/four | |
refs/tags/signed-tag | |
EOF | |
git for-each-ref --format="%(refname)" --no-merged=master >actual && | |
test_cmp expect actual | |
' | |
test_expect_success 'filtering with --contains' ' | |
cat >expect <<-\EOF && | |
refs/heads/master | |
refs/heads/side | |
refs/odd/spot | |
refs/tags/double-tag | |
refs/tags/four | |
refs/tags/signed-tag | |
refs/tags/three | |
refs/tags/two | |
EOF | |
git for-each-ref --format="%(refname)" --contains=two >actual && | |
test_cmp expect actual | |
' | |
test_done |