mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Fix prune when bare git has detached head
We don't really use HEAD much in the bare git repositories, but there have been reports of errors in git-symbolic-ref: symbolic-ref: fatal: Refusing to point HEAD outside of refs/ That happen when the bare git repo is in the detached head state. It's possible that previous operations were killed while we were pruning branches. Use DetachHead instead of SetHead if we're restoring the repo into a detached head state. Change-Id: I9062e8957bc70367d3ded399685ac026fbb421fc
This commit is contained in:
parent
e9becc079c
commit
1a799d14b7
@ -1583,8 +1583,6 @@ class Project(object):
|
|||||||
|
|
||||||
if kill:
|
if kill:
|
||||||
old = self.bare_git.GetHead()
|
old = self.bare_git.GetHead()
|
||||||
if old is None:
|
|
||||||
old = 'refs/heads/please_never_use_this_as_a_branch_name'
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.bare_git.DetachHead(rev)
|
self.bare_git.DetachHead(rev)
|
||||||
@ -1596,6 +1594,9 @@ class Project(object):
|
|||||||
capture_stderr=True)
|
capture_stderr=True)
|
||||||
b.Wait()
|
b.Wait()
|
||||||
finally:
|
finally:
|
||||||
|
if ID_RE.match(old):
|
||||||
|
self.bare_git.DetachHead(old)
|
||||||
|
else:
|
||||||
self.bare_git.SetHead(old)
|
self.bare_git.SetHead(old)
|
||||||
left = self._allrefs
|
left = self._allrefs
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user