ref-filter: make "%(symref)" atom work with the ':short' modifier
The "%(symref)" atom doesn't work when used with the ':short' modifier because we strictly match only 'symref' for setting the 'need_symref' indicator. Fix this by comparing with the valid_atom rather than the used_atom. Add tests for %(symref) and %(symref:short) while we're here. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Karthik Nayak <Karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7743fcca5b
commit
01f95825d5
@ -352,7 +352,7 @@ int parse_ref_filter_atom(const char *atom, const char *ep)
|
||||
valid_atom[i].parser(&used_atom[at], arg);
|
||||
if (*atom == '*')
|
||||
need_tagged = 1;
|
||||
if (!strcmp(used_atom[at].name, "symref"))
|
||||
if (!strcmp(valid_atom[i].name, "symref"))
|
||||
need_symref = 1;
|
||||
return at;
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ test_atom() {
|
||||
case "$1" in
|
||||
head) ref=refs/heads/master ;;
|
||||
tag) ref=refs/tags/testtag ;;
|
||||
sym) ref=refs/heads/sym ;;
|
||||
*) ref=$1 ;;
|
||||
esac
|
||||
printf '%s\n' "$3" >expected
|
||||
@ -566,6 +567,7 @@ test_expect_success 'Verify sort with multiple keys' '
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
|
||||
test_expect_success 'do not dereference NULL upon %(HEAD) on unborn branch' '
|
||||
test_when_finished "git checkout master" &&
|
||||
git for-each-ref --format="%(HEAD) %(refname:short)" refs/heads/ >actual &&
|
||||
@ -600,4 +602,26 @@ test_expect_success 'basic atom: head contents:trailers' '
|
||||
test_cmp expect actual.clean
|
||||
'
|
||||
|
||||
test_expect_success 'Add symbolic ref for the following tests' '
|
||||
git symbolic-ref refs/heads/sym refs/heads/master
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
refs/heads/master
|
||||
EOF
|
||||
|
||||
test_expect_success 'Verify usage of %(symref) atom' '
|
||||
git for-each-ref --format="%(symref)" refs/heads/sym >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
heads/master
|
||||
EOF
|
||||
|
||||
test_expect_success 'Verify usage of %(symref:short) atom' '
|
||||
git for-each-ref --format="%(symref:short)" refs/heads/sym >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user