diff options
author | Scott Lee <ddoman@google.com> | 2025-05-27 18:36:42 +0000 |
---|---|---|
committer | LUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2025-05-27 11:49:32 -0700 |
commit | 3c8bae27ecb8a8d95f814430e8985924f770d63b (patch) | |
tree | 66edd21109333bc4bc7445d3de34cd483877d79c | |
parent | 06338abe79f1fbef61f7297530ebf11139654d6c (diff) | |
download | git-repo-3c8bae27ecb8a8d95f814430e8985924f770d63b.tar.gz |
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>
-rw-r--r-- | git_superproject.py | 26 | ||||
-rw-r--r-- | subcmds/info.py | 4 |
2 files changed, 29 insertions, 1 deletions
diff --git a/git_superproject.py b/git_superproject.py index aba836a3..a557879c 100644 --- a/git_superproject.py +++ b/git_superproject.py | |||
@@ -130,6 +130,29 @@ class Superproject: | |||
130 | self._print_messages = value | 130 | self._print_messages = value |
131 | 131 | ||
132 | @property | 132 | @property |
133 | def commit_id(self): | ||
134 | """Returns the commit ID of the superproject checkout.""" | ||
135 | cmd = ["rev-parse", self.revision] | ||
136 | p = GitCommand( | ||
137 | None, # project | ||
138 | cmd, | ||
139 | gitdir=self._work_git, | ||
140 | bare=True, | ||
141 | capture_stdout=True, | ||
142 | capture_stderr=True, | ||
143 | ) | ||
144 | retval = p.Wait() | ||
145 | if retval != 0: | ||
146 | self._LogWarning( | ||
147 | "git rev-parse call failed, command: git {}, " | ||
148 | "return code: {}, stderr: {}", | ||
149 | cmd, | ||
150 | p.stdwerr, | ||
151 | ) | ||
152 | return None | ||
153 | return p.stdout | ||
154 | |||
155 | @property | ||
133 | def project_commit_ids(self): | 156 | def project_commit_ids(self): |
134 | """Returns a dictionary of projects and their commit ids.""" | 157 | """Returns a dictionary of projects and their commit ids.""" |
135 | return self._project_commit_ids | 158 | return self._project_commit_ids |
@@ -276,7 +299,7 @@ class Superproject: | |||
276 | Works only in git repositories. | 299 | Works only in git repositories. |
277 | 300 | ||
278 | Returns: | 301 | Returns: |
279 | data: data returned from 'git ls-tree ...' instead of None. | 302 | data: data returned from 'git ls-tree ...'. None on error. |
280 | """ | 303 | """ |
281 | if not os.path.exists(self._work_git): | 304 | if not os.path.exists(self._work_git): |
282 | self._LogWarning( | 305 | self._LogWarning( |
@@ -306,6 +329,7 @@ class Superproject: | |||
306 | retval, | 329 | retval, |
307 | p.stderr, | 330 | p.stderr, |
308 | ) | 331 | ) |
332 | return None | ||
309 | return data | 333 | return data |
310 | 334 | ||
311 | def Sync(self, git_event_log): | 335 | def Sync(self, git_event_log): |
diff --git a/subcmds/info.py b/subcmds/info.py index f8c2b1e3..2fbdae05 100644 --- a/subcmds/info.py +++ b/subcmds/info.py | |||
@@ -102,6 +102,10 @@ class Info(PagedCommand): | |||
102 | self.heading("Manifest groups: ") | 102 | self.heading("Manifest groups: ") |
103 | self.headtext(manifestGroups) | 103 | self.headtext(manifestGroups) |
104 | self.out.nl() | 104 | self.out.nl() |
105 | sp = self.manifest.superproject | ||
106 | srev = sp.commit_id if sp and sp.commit_id else "None" | ||
107 | self.heading("Superproject revision: ") | ||
108 | self.headtext(srev) | ||
105 | 109 | ||
106 | self.printSeparator() | 110 | self.printSeparator() |
107 | 111 | ||