Merge branch 'jc/branch-name-sanity'
"git branch" and "git checkout -b" are now forbidden from creating a branch whose name is "HEAD". * jc/branch-name-sanity: builtin/branch: remove redundant check for HEAD branch: correctly reject refs/heads/{-dash,HEAD} branch: split validate_new_branchname() into two branch: streamline "attr_only" handling in validate_new_branchname()
This commit is contained in:
14
sha1_name.c
14
sha1_name.c
@ -1438,9 +1438,19 @@ int strbuf_check_branch_ref(struct strbuf *sb, const char *name)
|
||||
strbuf_branchname(sb, name, INTERPRET_BRANCH_LOCAL);
|
||||
else
|
||||
strbuf_addstr(sb, name);
|
||||
if (name[0] == '-')
|
||||
return -1;
|
||||
|
||||
/*
|
||||
* This splice must be done even if we end up rejecting the
|
||||
* name; builtin/branch.c::copy_or_rename_branch() still wants
|
||||
* to see what the name expanded to so that "branch -m" can be
|
||||
* used as a tool to correct earlier mistakes.
|
||||
*/
|
||||
strbuf_splice(sb, 0, 0, "refs/heads/", 11);
|
||||
|
||||
if (*name == '-' ||
|
||||
!strcmp(sb->buf, "refs/heads/HEAD"))
|
||||
return -1;
|
||||
|
||||
return check_refname_format(sb->buf, 0);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user