> diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh
> index c9a2011915..71fc902062 100755
> --- a/t/t5516-fetch-push.sh
> +++ b/t/t5516-fetch-push.sh
> @@ -965,35 +965,43 @@ test_expect_success 'push into aliased refs 
> (inconsistent)' '
>       )
>  '
>  
> -test_expect_success 'push requires --force to update lightweight tag' '
> -     mk_test testrepo heads/master &&
> -     mk_child testrepo child1 &&
> -     mk_child testrepo child2 &&
> -     (
> -             cd child1 &&
> -             git tag Tag &&
> -             git push ../child2 Tag &&
> -             >file1 &&
> -             git add file1 &&
> -             git commit -m "file1" &&
> -             git tag -f Tag &&
> -             test_must_fail git push ../child2 Tag &&
> -             git push --force ../child2 Tag &&
> -             git tag -f Tag HEAD~ &&
> -             test_must_fail git push ../child2 Tag &&
> -             git push --force ../child2 Tag &&
> -             git tag -f Tag &&
> -             test_must_fail git push ../child2 "refs/tags/*:refs/tags/*" &&
> -             git push --force ../child2 "refs/tags/*:refs/tags/*" &&
> -             git tag -f Tag HEAD~ &&
> -             git push ../child2 "+refs/tags/*:refs/tags/*" &&
> -             git tag -f Tag &&
> -             git push --no-force ../child2 "+refs/tags/*:refs/tags/*" &&
> -             git tag -f Tag HEAD~ &&
> -             test_must_fail git push ../child2 tag Tag &&
> -             git push --force ../child2 tag Tag
> -     )
> -'
> +test_force_push_tag () {
> +     tag_type_description=$1
> +     tag_args=$2
> +
> +     test_expect_success "push requires --force to update 
> $tag_type_description" "
> +             mk_test testrepo heads/master &&
> +             mk_child testrepo child1 &&
> +             mk_child testrepo child2 &&
> +             (
> +                     cd child1 &&
> +                     git tag Tag &&
> +                     git push ../child2 Tag &&
> +                     >file1 &&
> +                     git add file1 &&
> +                     git commit -m 'file1' &&
> +                     git tag $tag_args Tag &&
> +                     test_must_fail git push ../child2 Tag &&
> +                     git push --force ../child2 Tag &&
> +                     git tag $tag_args Tag HEAD~ &&
> +                     test_must_fail git push ../child2 Tag &&
> +                     git push --force ../child2 Tag &&
> +                     git tag $tag_args Tag &&
> +                     test_must_fail git push ../child2 
> 'refs/tags/*:refs/tags/*' &&
> +                     git push --force ../child2 'refs/tags/*:refs/tags/*' &&
> +                     git tag $tag_args Tag HEAD~ &&
> +                     git push ../child2 '+refs/tags/*:refs/tags/*' &&
> +                     git tag $tag_args Tag &&function

There is that unwanted "function" at the end of the line.

Interstingly, the test does pass when run with dash, but fails the
chain-lint tests when run with Bash, even though it's in a subshell.

> +                     git push --no-force ../child2 
> '+refs/tags/*:refs/tags/*' &&
> +                     git tag $tag_args Tag HEAD~ &&
> +                     test_must_fail git push ../child2 tag Tag &&
> +                     git push --force ../child2 tag Tag
> +             )
> +     "
> +}
> +
> +test_force_push_tag "lightweight tag" "-f"
> +test_force_push_tag "annotated tag" "-f -a -m'msg'"
>  
>  test_expect_success 'push --porcelain' '
>       mk_empty testrepo &&

Reply via email to