manifest_xml: Improve error message on base check fail
Previous error had a scent of alien blob to it
due to dumping the list in a single long line, so
improve print for human readability.
Example of new fail:
error: in `manifest`: detected base-revision mismatch, updates needed:
remove-project name build/make:
base fccb6b3e884b4b964e795f5f8865f6bbb4722b5a vs revision 6e9a0c16f20d1cfcf08b8b9cb42301b6c9712862
remove-project path build/soong:
base 16b3c9ca0679bb376966866afb849322c8aec79f vs revision b7490575c16b87d861a532b03bd1b2d076b6fa0b
extend-project name platform/system/sepolicy:
base c2652856e9f0e0433d78cfb481efe392d6f5dbc4 vs revision cf9a73f92f503ffc4bd3e726164babfb40a9fcaf
Test: repo manifest > /dev/null && echo 'Nice =)'
on various good and bad test manifests
Change-Id: I8d741e11c69ef9e4f8cf09e32aa0868b6daa5acd
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/619921
Tested-by: Fredrik de Groot <fredrik.de.groot@haleytek.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Fredrik de Groot <fredrik.de.groot@haleytek.com>
diff --git a/manifest_xml.py b/manifest_xml.py
index 379ce09..0e80435 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -1519,9 +1519,9 @@
if base_revision:
if p.revisionExpr != base_revision:
failed_revision_changes.append(
- "extend-project name %s mismatch base "
- "%s vs revision %s"
- % (name, base_revision, p.revisionExpr)
+ f"extend-project name {name}:\n "
+ f"base {base_revision} vs "
+ f"revision {p.revisionExpr}"
)
p.SetRevision(revision)
@@ -1622,9 +1622,9 @@
if base_revision:
if p.revisionExpr != base_revision:
failed_revision_changes.append(
- "remove-project name %s mismatch base "
- "%s vs revision %s"
- % (name, base_revision, p.revisionExpr)
+ f"remove-project name {name}:\n "
+ f"base {base_revision} vs "
+ f"revision {p.revisionExpr}"
)
del self._paths[p.relpath]
if not removed_project:
@@ -1636,13 +1636,9 @@
if base_revision:
if p.revisionExpr != base_revision:
failed_revision_changes.append(
- "remove-project path %s mismatch base "
- "%s vs revision %s"
- % (
- p.relpath,
- base_revision,
- p.revisionExpr,
- )
+ f"remove-project path {p.relpath}:\n "
+ f"base {base_revision} vs "
+ f"revision {p.revisionExpr}"
)
self._projects[projname].remove(p)
del self._paths[p.relpath]
@@ -1664,10 +1660,10 @@
)
if failed_revision_changes:
+ fail_string = "\n".join(failed_revision_changes)
raise ManifestParseError(
- "revision base check failed, rebase patches and update "
- "base revs for: ",
- failed_revision_changes,
+ f"detected base-revision mismatch, updates needed:\n"
+ f"{fail_string}",
)
# Store repo hooks project information.