-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* jk/head-symref: symbolic ref: refuse non-ref targets in HEAD validate_headref: tighten ref-matching to just branches
- Loading branch information
Showing
3 changed files
with
46 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#!/bin/sh | ||
|
||
test_description='basic symbolic-ref tests' | ||
. ./test-lib.sh | ||
|
||
# If the tests munging HEAD fail, they can break detection of | ||
# the git repo, meaning that further tests will operate on | ||
# the surrounding git repo instead of the trash directory. | ||
reset_to_sane() { | ||
echo ref: refs/heads/foo >.git/HEAD | ||
} | ||
|
||
test_expect_success 'symbolic-ref writes HEAD' ' | ||
git symbolic-ref HEAD refs/heads/foo && | ||
echo ref: refs/heads/foo >expect && | ||
test_cmp expect .git/HEAD | ||
' | ||
|
||
test_expect_success 'symbolic-ref reads HEAD' ' | ||
echo refs/heads/foo >expect && | ||
git symbolic-ref HEAD >actual && | ||
test_cmp expect actual | ||
' | ||
|
||
test_expect_success 'symbolic-ref refuses non-ref for HEAD' ' | ||
test_must_fail git symbolic-ref HEAD foo | ||
' | ||
reset_to_sane | ||
|
||
test_expect_success 'symbolic-ref refuses non-branch for HEAD' ' | ||
test_must_fail git symbolic-ref HEAD refs/foo | ||
' | ||
reset_to_sane | ||
|
||
test_expect_success 'symbolic-ref refuses bare sha1' ' | ||
echo content >file && git add file && git commit -m one | ||
test_must_fail git symbolic-ref HEAD `git rev-parse HEAD` | ||
' | ||
reset_to_sane | ||
|
||
test_done |