| #!/bin/sh | 
 |  | 
 | test_description='previous branch syntax @{-n}' | 
 |  | 
 | . ./test-lib.sh | 
 |  | 
 | test_expect_success 'branch -d @{-1}' ' | 
 | 	test_commit A && | 
 | 	git checkout -b junk && | 
 | 	git checkout - && | 
 | 	test "$(git symbolic-ref HEAD)" = refs/heads/master && | 
 | 	git branch -d @{-1} && | 
 | 	test_must_fail git rev-parse --verify refs/heads/junk | 
 | ' | 
 |  | 
 | test_expect_success 'branch -d @{-12} when there is not enough switches yet' ' | 
 | 	git reflog expire --expire=now && | 
 | 	git checkout -b junk2 && | 
 | 	git checkout - && | 
 | 	test "$(git symbolic-ref HEAD)" = refs/heads/master && | 
 | 	test_must_fail git branch -d @{-12} && | 
 | 	git rev-parse --verify refs/heads/master | 
 | ' | 
 |  | 
 | test_expect_success 'merge @{-1}' ' | 
 | 	git checkout A && | 
 | 	test_commit B && | 
 | 	git checkout A && | 
 | 	test_commit C && | 
 | 	git branch -f master B && | 
 | 	git branch -f other && | 
 | 	git checkout other && | 
 | 	git checkout master && | 
 | 	git merge @{-1} && | 
 | 	git cat-file commit HEAD | grep "Merge branch '\''other'\''" | 
 | ' | 
 |  | 
 | test_expect_success 'merge @{-1} when there is not enough switches yet' ' | 
 | 	git reflog expire --expire=now && | 
 | 	git checkout -f master && | 
 | 	git reset --hard B && | 
 | 	git branch -f other C && | 
 | 	git checkout other && | 
 | 	git checkout master && | 
 | 	test_must_fail git merge @{-12} | 
 | ' | 
 |  | 
 | test_done | 
 |  |