Use full name of the revision when checking dest-branch

The manifest usually doesn't sepecify the revision with the full name
(e.g. refs/heads/REV).
However, when checking if the name of the merge branch, full name is
used on the merge branch.

The CL use full name of revision when comparing it with the merge
branch.

Bug: b/370919047
Test: repo upload on a project with `dest-branch` set
Change-Id: Ib6fa2f7246beb5bae0a26a70048a7ac03b6c5a2f
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/438401
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Tested-by: Joe Hsu <joehsu@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
This commit is contained in:
joehsu 2024-10-02 20:01:59 +08:00 committed by LUCI
parent ebdf0409d2
commit f9f4df62e0

View File

@ -603,19 +603,22 @@ Gerrit Code Review: https://www.gerritcodereview.com/
full_dest = destination full_dest = destination
if not full_dest.startswith(R_HEADS): if not full_dest.startswith(R_HEADS):
full_dest = R_HEADS + full_dest full_dest = R_HEADS + full_dest
full_revision = branch.project.revisionExpr
if not full_revision.startswith(R_HEADS):
full_revision = R_HEADS + full_revision
# If the merge branch of the local branch is different from # If the merge branch of the local branch is different from
# the project's revision AND destination, this might not be # the project's revision AND destination, this might not be
# intentional. # intentional.
if ( if (
merge_branch merge_branch
and merge_branch != branch.project.revisionExpr and merge_branch != full_revision
and merge_branch != full_dest and merge_branch != full_dest
): ):
print( print(
f"For local branch {branch.name}: merge branch " f"For local branch {branch.name}: merge branch "
f"{merge_branch} does not match destination branch " f"{merge_branch} does not match destination branch "
f"{destination}" f"{destination} and revision {branch.project.revisionExpr}"
) )
print("skipping upload.") print("skipping upload.")
print( print(