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:
@ -463,7 +463,6 @@ static void copy_or_rename_branch(const char *oldname, const char *newname, int
|
||||
struct strbuf oldref = STRBUF_INIT, newref = STRBUF_INIT, logmsg = STRBUF_INIT;
|
||||
struct strbuf oldsection = STRBUF_INIT, newsection = STRBUF_INIT;
|
||||
int recovery = 0;
|
||||
int clobber_head_ok;
|
||||
|
||||
if (!oldname) {
|
||||
if (copy)
|
||||
@ -487,9 +486,10 @@ static void copy_or_rename_branch(const char *oldname, const char *newname, int
|
||||
* A command like "git branch -M currentbranch currentbranch" cannot
|
||||
* cause the worktree to become inconsistent with HEAD, so allow it.
|
||||
*/
|
||||
clobber_head_ok = !strcmp(oldname, newname);
|
||||
|
||||
validate_new_branchname(newname, &newref, force, clobber_head_ok);
|
||||
if (!strcmp(oldname, newname))
|
||||
validate_branchname(newname, &newref);
|
||||
else
|
||||
validate_new_branchname(newname, &newref, force);
|
||||
|
||||
reject_rebase_or_bisect_branch(oldref.buf);
|
||||
|
||||
@ -793,9 +793,6 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
||||
} else if (argc > 0 && argc <= 2) {
|
||||
struct branch *branch = branch_get(argv[0]);
|
||||
|
||||
if (!strcmp(argv[0], "HEAD"))
|
||||
die(_("it does not make sense to create 'HEAD' manually"));
|
||||
|
||||
if (!branch)
|
||||
die(_("no such branch '%s'"), argv[0]);
|
||||
|
||||
|
Reference in New Issue
Block a user