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. |
