From 8ca2d7f96a4179015b4f4c30d7b906c1b23abf24 Mon Sep 17 00:00:00 2001 From: Konstantin Ryabitsev Date: Thu, 20 May 2021 15:58:27 -0400 Subject: Cherrypick from the correct series revision When cherrypicking by msgid and with multiple revisions available, make sure that we pick the series revision that actually contains the msgid being cherrypicked. Signed-off-by: Konstantin Ryabitsev --- b4/mbox.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/b4/mbox.py b/b4/mbox.py index 74e0f8e..4364ebd 100644 --- a/b4/mbox.py +++ b/b4/mbox.py @@ -47,6 +47,17 @@ def make_am(msgs, cmdargs, msgid): reroll = True if cmdargs.nopartialreroll: reroll = False + if cmdargs.cherrypick == '_' and not wantver and len(lmbx.series) > 1: + # Make sure we pick the revision containing the msgid + wantver = None + for cnum, clser in lmbx.series.items(): + for lmsg in clser.patches: + if lmsg and lmsg.msgid == msgid: + wantver = cnum + break + if wantver: + break + lser = lmbx.get_series(revision=wantver, sloppytrailers=cmdargs.sloppytrailers, reroll=reroll) if lser is None and wantver is None: logger.critical('No patches found.') -- cgit v1.2.3