aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2024-05-07 09:44:55 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2024-05-07 19:39:24 +0000
commit4a3e54bd34814bd1666e2fb3370399deb444a484 (patch)
treee3f1f6ac57537c95ecff0d4a9a54a7f4da532fb3
parent33c01563aa3effa4294ceea4a12ff134cb1e1470 (diff)
downloadtoolchain-utils-4a3e54bd34814bd1666e2fb3370399deb444a484.tar.gz
llvm_tools: fix patch reapplication logic
`new_revert_infos[n].friendly_name` here is the name of the SHA we're tracking reverts across (e.g., `llvm-next`, `llvm`). Adding them to a set is pointless, since these names should never have dups. Instead, I assume this code tried to protect from the same revert being applied multiple times. BUG=b:339147957 TEST=Ran the script; no longer breaks Change-Id: I360b345c2b42bd5d2beb3f1ce000835ad70a5d03 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/5522853 Commit-Queue: George Burgess <gbiv@chromium.org> Tested-by: George Burgess <gbiv@chromium.org> Reviewed-by: Jordan Abrahams-Whitehead <ajordanr@google.com>
-rw-r--r--llvm_tools/nightly_revert_checker.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/llvm_tools/nightly_revert_checker.py b/llvm_tools/nightly_revert_checker.py
index bf536116..d9ed6036 100644
--- a/llvm_tools/nightly_revert_checker.py
+++ b/llvm_tools/nightly_revert_checker.py
@@ -324,17 +324,24 @@ def do_cherrypick(
return prettify_sha_for_email(sha, rev)
new_state = State()
- seen: Set[str] = set()
+ seen_shas: Set[str] = set()
- new_state, new_reverts = locate_new_reverts_across_shas(
+ new_state, new_revert_infos = locate_new_reverts_across_shas(
llvm_dir, interesting_shas, state
)
- for revert_info in new_reverts:
- if revert_info.friendly_name in seen:
- continue
- seen.add(revert_info.friendly_name)
+ for revert_info in new_revert_infos:
+ logging.info(
+ "Applying new reverts across %s...", revert_info.friendly_name
+ )
for sha, reverted_sha in revert_info.new_reverts:
+ # b/339147957: a revert may cross multiple `interesting_shas`.
+ # In that case, we only need to apply it once to actually cover all
+ # of said SHAs.
+ if sha in seen_shas:
+ logging.info("Skipping reapplication of SHA %s", sha)
+ continue
+ seen_shas.add(sha)
_upload_patches(
sha=sha,
reverted_sha=reverted_sha,