diff options
author | George Burgess IV <gbiv@google.com> | 2024-05-07 09:44:55 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2024-05-07 19:39:24 +0000 |
commit | 4a3e54bd34814bd1666e2fb3370399deb444a484 (patch) | |
tree | e3f1f6ac57537c95ecff0d4a9a54a7f4da532fb3 | |
parent | 33c01563aa3effa4294ceea4a12ff134cb1e1470 (diff) | |
download | toolchain-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.py | 19 |
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, |