branches: Escape percent signs in branch names If a branch name contains a percent sign, it will be interpreted as a placeholder and color.py will fail to format it. To avoid this, escape the percent signs prior to calling Coloring method. Bug: b/379090488 Change-Id: Id019c776bbf8cbed5c101f2773606f1d32c9e057 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/443801 Reviewed-by: Scott Lee <ddoman@google.com> Tested-by: Josip Sokcevic <sokcevic@google.com> Commit-Queue: Josip Sokcevic <sokcevic@google.com>
diff --git a/subcmds/branches.py b/subcmds/branches.py index 08c6389..b7a45b4 100644 --- a/subcmds/branches.py +++ b/subcmds/branches.py
@@ -167,7 +167,10 @@ else: published = " " - hdr("%c%c %-*s" % (current, published, width, name)) + # A branch name can contain a percent sign, so we need to escape it. + # Escape after f-string formatting to properly account for leading + # spaces. + hdr(f"{current}{published} {name:{width}}".replace("%", "%%")) out.write(" |") _RelPath = lambda p: p.RelPath(local=opt.this_manifest_only)