diff options
author | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2020-10-02 08:56:39 -0400 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2020-10-02 08:57:56 -0400 |
commit | bb3e0204972e720185e4693c5779eef5f6b49907 (patch) | |
tree | 3db994202a7ad1fdd9ab86378fa45279599e0164 /b4/__init__.py | |
parent | ba3785ab469f557328972dfa3cfd30029d0d5f0a (diff) | |
download | b4-bb3e0204972e720185e4693c5779eef5f6b49907.tar.gz |
Fix some cherry-picking corner cases
Handle several corner cases when trying to cherrypick from incomplete
series.
Reported-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
Diffstat (limited to 'b4/__init__.py')
-rw-r--r-- | b4/__init__.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/b4/__init__.py b/b4/__init__.py index 6ffbb5c..f715713 100644 --- a/b4/__init__.py +++ b/b4/__init__.py @@ -499,10 +499,14 @@ class LoreSeries: at = 1 atterrors = list() for lmsg in self.patches[1:]: - if cherrypick is not None and at not in cherrypick: - at += 1 - logger.debug(' skipped: [%s/%s] (not in cherrypick)', at, self.expected) - continue + if cherrypick is not None: + if at not in cherrypick: + at += 1 + logger.debug(' skipped: [%s/%s] (not in cherrypick)', at, self.expected) + continue + if lmsg is None: + logger.critical('CRITICAL: [%s/%s] is missing, cannot cherrypick', at, self.expected) + raise KeyError('Cherrypick not in series') if lmsg is not None: if self.has_cover and covertrailers and self.patches[0].followup_trailers: lmsg.followup_trailers.update(self.patches[0].followup_trailers) |