info: print superproject revision
Bug: 416589884
Change-Id: I5d1c709518d76d777a7f07c4c774569773c5a265
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/478205
Lint: Scott Lee <ddoman@google.com>
Tested-by: Scott Lee <ddoman@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Commit-Queue: Scott Lee <ddoman@google.com>
diff --git a/git_superproject.py b/git_superproject.py
index aba836a..a557879 100644
--- a/git_superproject.py
+++ b/git_superproject.py
@@ -130,6 +130,29 @@
self._print_messages = value
@property
+ def commit_id(self):
+ """Returns the commit ID of the superproject checkout."""
+ cmd = ["rev-parse", self.revision]
+ p = GitCommand(
+ None, # project
+ cmd,
+ gitdir=self._work_git,
+ bare=True,
+ capture_stdout=True,
+ capture_stderr=True,
+ )
+ retval = p.Wait()
+ if retval != 0:
+ self._LogWarning(
+ "git rev-parse call failed, command: git {}, "
+ "return code: {}, stderr: {}",
+ cmd,
+ p.stdwerr,
+ )
+ return None
+ return p.stdout
+
+ @property
def project_commit_ids(self):
"""Returns a dictionary of projects and their commit ids."""
return self._project_commit_ids
@@ -276,7 +299,7 @@
Works only in git repositories.
Returns:
- data: data returned from 'git ls-tree ...' instead of None.
+ data: data returned from 'git ls-tree ...'. None on error.
"""
if not os.path.exists(self._work_git):
self._LogWarning(
@@ -306,6 +329,7 @@
retval,
p.stderr,
)
+ return None
return data
def Sync(self, git_event_log):
diff --git a/subcmds/info.py b/subcmds/info.py
index f8c2b1e..2fbdae0 100644
--- a/subcmds/info.py
+++ b/subcmds/info.py
@@ -102,6 +102,10 @@
self.heading("Manifest groups: ")
self.headtext(manifestGroups)
self.out.nl()
+ sp = self.manifest.superproject
+ srev = sp.commit_id if sp and sp.commit_id else "None"
+ self.heading("Superproject revision: ")
+ self.headtext(srev)
self.printSeparator()