diff options
| author | Patrick Steinhardt <ps@pks.im> | 2018-01-19 09:20:59 +0000 |
|---|---|---|
| committer | Patrick Steinhardt <ps@pks.im> | 2018-01-19 09:34:01 +0000 |
| commit | a9677e019c01cc9c06230c4e8ee2c04db72885c4 (patch) | |
| tree | a6754d57466445d091ad6be9d6c2544e2b05111f | |
| parent | 4893a9c01c8da084eb995178f80d0d453109056e (diff) | |
| download | libgit2-a9677e019c01cc9c06230c4e8ee2c04db72885c4.tar.gz | |
branch: refuse creating branches named 'HEAD'
Since a625b092c (branch: correctly reject refs/heads/{-dash,HEAD},
2017-11-14), which is included in v2.16.0, upstream git refuses to
create branches which are named HEAD to avoid ambiguity with the
symbolic HEAD reference. Adjust our own code to match that behaviour and
reject creating branches names HEAD.
| -rw-r--r-- | src/branch.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/branch.c b/src/branch.c index 0697a77fb..42addc2ce 100644 --- a/src/branch.c +++ b/src/branch.c @@ -70,6 +70,12 @@ static int create_branch( assert(branch_name && commit && ref_out); assert(git_object_owner((const git_object *)commit) == repository); + if (!git__strcmp(branch_name, "HEAD")) { + giterr_set(GITERR_REFERENCE, "'HEAD' is not a valid branch name"); + error = -1; + goto cleanup; + } + if (force && !bare && git_branch_lookup(&branch, repository, branch_name, GIT_BRANCH_LOCAL) == 0) { error = git_branch_is_head(branch); git_reference_free(branch); |
