diff options
-rw-r--r-- | project.py | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -2558,6 +2558,8 @@ class Project(object): | |||
2558 | 2558 | ||
2559 | base = R_WORKTREE_M | 2559 | base = R_WORKTREE_M |
2560 | active_git = self.work_git | 2560 | active_git = self.work_git |
2561 | |||
2562 | self._InitAnyMRef(HEAD, self.bare_git, detach=True) | ||
2561 | else: | 2563 | else: |
2562 | base = R_M | 2564 | base = R_M |
2563 | active_git = self.bare_git | 2565 | active_git = self.bare_git |
@@ -2567,7 +2569,7 @@ class Project(object): | |||
2567 | def _InitMirrorHead(self): | 2569 | def _InitMirrorHead(self): |
2568 | self._InitAnyMRef(HEAD, self.bare_git) | 2570 | self._InitAnyMRef(HEAD, self.bare_git) |
2569 | 2571 | ||
2570 | def _InitAnyMRef(self, ref, active_git): | 2572 | def _InitAnyMRef(self, ref, active_git, detach=False): |
2571 | cur = self.bare_ref.symref(ref) | 2573 | cur = self.bare_ref.symref(ref) |
2572 | 2574 | ||
2573 | if self.revisionId: | 2575 | if self.revisionId: |
@@ -2580,7 +2582,10 @@ class Project(object): | |||
2580 | dst = remote.ToLocal(self.revisionExpr) | 2582 | dst = remote.ToLocal(self.revisionExpr) |
2581 | if cur != dst: | 2583 | if cur != dst: |
2582 | msg = 'manifest set to %s' % self.revisionExpr | 2584 | msg = 'manifest set to %s' % self.revisionExpr |
2583 | active_git.symbolic_ref('-m', msg, ref, dst) | 2585 | if detach: |
2586 | active_git.UpdateRef(ref, dst, message=msg, detach=True) | ||
2587 | else: | ||
2588 | active_git.symbolic_ref('-m', msg, ref, dst) | ||
2584 | 2589 | ||
2585 | def _CheckDirReference(self, srcdir, destdir, share_refs): | 2590 | def _CheckDirReference(self, srcdir, destdir, share_refs): |
2586 | # Git worktrees don't use symlinks to share at all. | 2591 | # Git worktrees don't use symlinks to share at all. |