Skip to content

Commit e9cc02f

Browse files
peffgitster
authored andcommitted
symbolic-ref: allow refs/<whatever> in HEAD
Commit afe5d3d introduced a safety valve to symbolic-ref to disallow installing an invalid HEAD. It was accompanied by b229d18, which changed validate_headref to require that HEAD contain a pointer to refs/heads/ instead of just refs/. Therefore, the safety valve also checked for refs/heads/. As it turns out, topgit is using refs/top-bases/ in HEAD, leading us to re-loosen (at least temporarily) the validate_headref check made in b229d18. This patch does the corresponding loosening for the symbolic-ref safety valve, so that the two are in agreement once more. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 4b15b4a commit e9cc02f

File tree

2 files changed

+2
-7
lines changed

2 files changed

+2
-7
lines changed

builtin-symbolic-ref.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)
4545
break;
4646
case 2:
4747
if (!strcmp(argv[0], "HEAD") &&
48-
prefixcmp(argv[1], "refs/heads/"))
49-
die("Refusing to point HEAD outside of refs/heads/");
48+
prefixcmp(argv[1], "refs/"))
49+
die("Refusing to point HEAD outside of refs/");
5050
create_symref(argv[0], argv[1], msg);
5151
break;
5252
default:

t/t1401-symbolic-ref.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ test_expect_success 'symbolic-ref refuses non-ref for HEAD' '
2727
'
2828
reset_to_sane
2929

30-
test_expect_success 'symbolic-ref refuses non-branch for HEAD' '
31-
test_must_fail git symbolic-ref HEAD refs/foo
32-
'
33-
reset_to_sane
34-
3530
test_expect_success 'symbolic-ref refuses bare sha1' '
3631
echo content >file && git add file && git commit -m one
3732
test_must_fail git symbolic-ref HEAD `git rev-parse HEAD`

0 commit comments

Comments
 (0)