project: replace GetHeadPath with new git helper

Change-Id: I79931cb484508c78f6a8b8413d05b85ed8bc6d98
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256533
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
diff --git a/project.py b/project.py
index af2a8bc..3138eb1 100644
--- a/project.py
+++ b/project.py
@@ -1952,18 +1952,6 @@
     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 @@
       # 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 @@
 
       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)