shazam: Add the --merge-base argument
PATCH v2 1/1 shazam: Add the --merge-base argument
From: Palmer Dabbelt <[email protected]>
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.
---
Been running this fixed up version for a bit now with no issues. Dunno if the last submission didn't end up in an inbox for some reason, but figured I'd resend with my fixes.
The changelog is the diff I attached in my response to the v1:
https://lore.kernel.org/tools/Y8199aCGNIW37YGx@spud/T/#m9fbe4c02429ec0601e5ff93fbe1aaecb368f736c
--- b4/command.py | 2 ++ b4/mbox.py | 17 +++++++++++------ man/b4.5.rst | 2 ++ 3 files changed, 15 insertions(+), 6 deletions(-)
b4/command.py +2 -0
@@ -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
b4/mbox.py +11 -6
@@ -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
man/b4.5.rst +2 -0
@@ -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 [email protected]
Signature · 1 line
2.39.1
Konstantin Ryabitsev
AppliedQuoted 8 lines · Conor Dooley
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,
Signature · 1 line
Konstantin Ryabitsev <[email protected]>
Quoted 9 lines · Konstantin Ryabitsev
Quoted 7 lines · Conor Dooley
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.
Quoted 6 lines
Quoted 1 line
[...]
Applied, thanks!
[1/1] shazam: Add the --merge-base argument
commit: 7e797fe9e052bbc97f4ee2cf14b3c444c2d01653
Great, thanks Konstantin!
Quoted 10 lines · Conor Dooley
Quoted 9 lines · Konstantin Ryabitsev
Quoted 7 lines · Conor Dooley
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.
Quoted 8 lines
Quoted 6 lines
Quoted 1 line
[...]
Applied, thanks!
[1/1] shazam: Add the --merge-base argument
commit: 7e797fe9e052bbc97f4ee2cf14b3c444c2d01653Great, 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.