info: Report actual checked-out HEAD revision

When `repo info` runs, the reported "Current revision" is resolved using
the manifest's target branch tracking ref (e.g. refs/remotes/goog/main).

Introduce Project.GetHeadRevisionId(), which gets the checked-out HEAD
commit in the worktree, and use it in `repo info` with a fallback to the
old behavior if the project is not checked out.

Bug: 526685287
Change-Id: I72280ce27daa210cada27d722a94e365644f06e0
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/599481
Reviewed-by: Brian Gan <brgan@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Tested-by: Gavin Mak <gavinmak@google.com>
This commit is contained in:
Gavin Mak
2026-06-22 22:36:20 +00:00
committed by gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com
parent c21a41c7cc
commit 88a7e88e54
4 changed files with 61 additions and 2 deletions
+3 -2
View File
@@ -196,7 +196,8 @@ class Info(PagedCommand):
data = {
"name": project.name,
"mount_path": project.worktree,
"current_revision": project.GetRevisionId(),
"current_revision": project.GetHeadRevisionId()
or project.GetRevisionId(),
"manifest_revision": project.revisionExpr,
"local_branches": list(project.GetBranches()),
}
@@ -273,7 +274,7 @@ class Info(PagedCommand):
out.nl()
heading("Current revision: ")
headtext(project.GetRevisionId())
headtext(project.GetHeadRevisionId() or project.GetRevisionId())
out.nl()
currentBranch = project.CurrentBranch