Merge branch 'sg/rebase-progress' into maint
[gitweb.git] / t / t5509-fetch-push-namespaces.sh
index 75c570adcae4f474c15775ec8504521fc806e2a9..75cbfcc392c8cd71e20d901a7a28bf7f6f73451a 100755 (executable)
@@ -44,7 +44,7 @@ test_expect_success 'pushing into a repository using a ref namespace' '
                test_cmp expected actual &&
                # Try a namespace with no content
                git ls-remote "ext::git --namespace=garbage %s ../pushee" >actual &&
-               test_cmp /dev/null actual &&
+               test_must_be_empty actual &&
                git ls-remote pushee-unnamespaced >actual &&
                sed -e "s|refs/|refs/namespaces/namespace/refs/|" expected >expected.unnamespaced &&
                test_cmp expected.unnamespaced actual
@@ -124,4 +124,32 @@ test_expect_success 'try to update a hidden full ref' '
        test_must_fail git -C original push pushee-namespaced master
 '
 
+test_expect_success 'set up ambiguous HEAD' '
+       git init ambiguous &&
+       (
+               cd ambiguous &&
+               git commit --allow-empty -m foo &&
+               git update-ref refs/namespaces/ns/refs/heads/one HEAD &&
+               git update-ref refs/namespaces/ns/refs/heads/two HEAD &&
+               git symbolic-ref refs/namespaces/ns/HEAD \
+                       refs/namespaces/ns/refs/heads/two
+       )
+'
+
+test_expect_success 'clone chooses correct HEAD (v0)' '
+       GIT_NAMESPACE=ns git -c protocol.version=0 \
+               clone ambiguous ambiguous-v0 &&
+       echo refs/heads/two >expect &&
+       git -C ambiguous-v0 symbolic-ref HEAD >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'clone chooses correct HEAD (v2)' '
+       GIT_NAMESPACE=ns git -c protocol.version=2 \
+               clone ambiguous ambiguous-v2 &&
+       echo refs/heads/two >expect &&
+       git -C ambiguous-v2 symbolic-ref HEAD >actual &&
+       test_cmp expect actual
+'
+
 test_done