diff --git a/project.py b/project.py index af2a8bc3..3138eb19 100644 --- a/project.py +++ b/project.py @@ -1952,18 +1952,6 @@ class Project(object): return True # Branch Management ## - def GetHeadPath(self): - """Return the full path to the HEAD ref.""" - dotgit = os.path.join(self.worktree, '.git') - if os.path.isfile(dotgit): - # Git worktrees use a "gitdir:" syntax to point to the scratch space. - with open(dotgit) as fp: - setting = fp.read() - assert setting.startswith('gitdir:') - gitdir = setting.split(':', 1)[1].strip() - dotgit = os.path.join(self.worktree, gitdir) - return os.path.join(dotgit, HEAD) - def StartBranch(self, name, branch_merge='', revision=None): """Create a new branch off the manifest's revision. """ @@ -2046,7 +2034,8 @@ class Project(object): # Same revision; just update HEAD to point to the new # target branch, but otherwise take no other action. # - _lwrite(self.GetHeadPath(), 'ref: %s%s\n' % (R_HEADS, name)) + _lwrite(self.work_git.GetDotgitPath(subpath=HEAD), + 'ref: %s%s\n' % (R_HEADS, name)) return True return GitCommand(self, @@ -2079,7 +2068,7 @@ class Project(object): revid = self.GetRevisionId(all_refs) if head == revid: - _lwrite(self.GetHeadPath(), '%s\n' % revid) + _lwrite(self.work_git.GetDotgitPath(subpath=HEAD), '%s\n' % revid) else: self._Checkout(revid, quiet=True)