project: Use git rev-parse to read HEAD
Don't directly read `.git/HEAD`, git already has a command for this.
Bug: 432200791
Change-Id: Iba030650224143eb07c44da1fa56341d9deb4288
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/492941
Reviewed-by: Scott Lee <ddoman@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Tested-by: Gavin Mak <gavinmak@google.com>
diff --git a/project.py b/project.py
index 3def4d3..84a5cdf 100644
--- a/project.py
+++ b/project.py
@@ -3834,19 +3834,11 @@
def GetHead(self):
"""Return the ref that HEAD points to."""
- path = self.GetDotgitPath(subpath=HEAD)
try:
- with open(path) as fd:
- line = fd.readline()
- except OSError as e:
+ return self.rev_parse("--symbolic-full-name", HEAD)
+ except GitError as e:
+ path = self.GetDotgitPath(subpath=HEAD)
raise NoManifestException(path, str(e))
- try:
- line = line.decode()
- except AttributeError:
- pass
- if line.startswith("ref: "):
- return line[5:-1]
- return line[:-1]
def SetHead(self, ref, message=None):
cmdv = []