Message ID | 20230201173301.54604-1-conor@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [v2] shazam: Add the --merge-base argument | expand |
On Wed, 01 Feb 2023 17:33:02 +0000, Conor Dooley wrote: > I was just handling a patch set where the author used English to > describe the dependencies. They hadn't yet been merged at the time the > patch set was posted so I don't think there's really any way to make > sure the computers always understand the base, this just lets me quickly > override the automatic merge base detection when I run into something > non-canonical. > > [...] Applied, thanks! [1/1] shazam: Add the --merge-base argument commit: 7e797fe9e052bbc97f4ee2cf14b3c444c2d01653 Best regards,
On Wed, Feb 01, 2023 at 03:24:05PM -0500, Konstantin Ryabitsev wrote: > > On Wed, 01 Feb 2023 17:33:02 +0000, Conor Dooley wrote: > > I was just handling a patch set where the author used English to > > describe the dependencies. They hadn't yet been merged at the time the > > patch set was posted so I don't think there's really any way to make > > sure the computers always understand the base, this just lets me quickly > > override the automatic merge base detection when I run into something > > non-canonical. > > > > [...] > > Applied, thanks! > > [1/1] shazam: Add the --merge-base argument > commit: 7e797fe9e052bbc97f4ee2cf14b3c444c2d01653 Great, thanks Konstantin!
On Thu, 02 Feb 2023 10:16:25 PST (-0800), Conor Dooley wrote: > On Wed, Feb 01, 2023 at 03:24:05PM -0500, Konstantin Ryabitsev wrote: >> >> On Wed, 01 Feb 2023 17:33:02 +0000, Conor Dooley wrote: >> > I was just handling a patch set where the author used English to >> > describe the dependencies. They hadn't yet been merged at the time the >> > patch set was posted so I don't think there's really any way to make >> > sure the computers always understand the base, this just lets me quickly >> > override the automatic merge base detection when I run into something >> > non-canonical. >> > >> > [...] >> >> Applied, thanks! >> >> [1/1] shazam: Add the --merge-base argument >> commit: 7e797fe9e052bbc97f4ee2cf14b3c444c2d01653 > > Great, thanks Konstantin! Ya, thanks for sorting this out guys. I think I've got a few more patches floating around, I haven't poked my tree for a bit.
diff --git a/b4/command.py b/b4/command.py index 304450f..3d769ad 100644 --- a/b4/command.py +++ b/b4/command.py @@ -175,6 +175,8 @@ def setup_parser() -> argparse.ArgumentParser: sp_sh.add_argument('--guess-lookback', dest='guessdays', type=int, default=21, help=('(use with -H or -M) When guessing base, go back this many days from the patch date ' '(default: 3 weeks)')) + sp_sh.add_argument('--merge-base', dest='mergebase', type=str, default=None, + help=('(use with -H or -M) Force this base when merging')) sp_sh.set_defaults(func=cmd_shazam) # b4 pr diff --git a/b4/mbox.py b/b4/mbox.py index e0c6a0a..0b0fc40 100644 --- a/b4/mbox.py +++ b/b4/mbox.py @@ -211,14 +211,17 @@ def make_am(msgs: List[email.message.Message], cmdargs: argparse.Namespace, msgi logger.critical(' Link: %s', linkurl) base_commit = None - matches = re.search(r'base-commit: .*?([\da-f]+)', first_body, re.MULTILINE) - if matches: - base_commit = matches.groups()[0] + if cmdargs.mergebase: + base_commit = cmdargs.mergebase else: - # Try a more relaxed search - matches = re.search(r'based on .*?([\da-f]{40})', first_body, re.MULTILINE) + matches = re.search(r'base-commit: .*?([\da-f]+)', first_body, re.MULTILINE) if matches: base_commit = matches.groups()[0] + else: + # Try a more relaxed search + matches = re.search(r'based on .*?([\da-f]{40})', first_body, re.MULTILINE) + if matches: + base_commit = matches.groups()[0] if base_commit and topdir: # Does it actually exist in this tree? @@ -670,8 +673,8 @@ def refetch(dest: str) -> None: def main(cmdargs: argparse.Namespace) -> None: + # We force some settings if cmdargs.subcmd == 'shazam': - # We force some settings cmdargs.checknewer = True cmdargs.threeway = False cmdargs.nopartialreroll = False @@ -683,6 +686,8 @@ def main(cmdargs: argparse.Namespace) -> None: cmdargs.guessbase = True else: cmdargs.guessbase = False + else: + cmdargs.mergebase = False if cmdargs.checknewer: # Force nocache mode diff --git a/man/b4.5.rst b/man/b4.5.rst index dc00ef2..31beae4 100644 --- a/man/b4.5.rst +++ b/man/b4.5.rst @@ -230,6 +230,8 @@ options: Attempt to merge series as if it were a pull request (execs git-merge) --guess-lookback GUESSDAYS (use with -H or -M) When guessing base, go back this many days from the patch date (default: 3 weeks) + --merge-base COMMIT + (use with -H or -M) Force this base when merging *Example*: b4 shazam -H 20200313231252.64999-1-keescook@chromium.org