cache-tree: reject entries with null sha1
[gitweb.git] / t / t3204-branch-name-interpretation.sh
index 4f4af1fb46975f51cde93af4b2ea226d10bc3207..698d9cc4f3d65754552b8ccdd46b0cb64aea09c5 100755 (executable)
@@ -42,7 +42,7 @@ test_expect_success 'update branch via local @{upstream}' '
        expect_branch local two
 '
 
-test_expect_failure 'disallow updating branch via remote @{upstream}' '
+test_expect_success 'disallow updating branch via remote @{upstream}' '
        git update-ref refs/remotes/origin/remote one &&
        git branch --set-upstream-to=origin/remote &&
 
@@ -109,7 +109,7 @@ test_expect_success 'disallow deleting remote branch via @{-1}' '
 # and not refs/heads/HEAD. These tests should not imply that refs/heads/@ is a
 # sane thing, but it _is_ technically allowed for now. If we disallow it, these
 # can be switched to test_must_fail.
-test_expect_failure 'create branch named "@"' '
+test_expect_success 'create branch named "@"' '
        git branch -f @ one &&
        expect_branch refs/heads/@ one
 '
@@ -120,4 +120,14 @@ test_expect_success 'delete branch named "@"' '
        expect_deleted refs/heads/@
 '
 
+test_expect_success 'checkout does not treat remote @{upstream} as a branch' '
+       git update-ref refs/remotes/origin/checkout one &&
+       git branch --set-upstream-to=origin/checkout &&
+       git update-ref refs/heads/origin/checkout two &&
+       git update-ref refs/heads/remotes/origin/checkout two &&
+
+       git checkout @{upstream} &&
+       expect_branch HEAD one
+'
+
 test_done