From c95e4d16d87c7c71589c64b1ac94973b354d0820 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Thu, 31 Mar 2022 14:53:46 -0500 Subject: am: Fix broken guessbranch handling b4's usage of git-log '--branches' option is broken. The option takes a glob pattern *only* and must have an '=', but b4 ends up passing '--branches ' to git-log. This will kind of work, but is not checking only 'guessbranch'. For example, these 3 commands all do something different: git log -1 --branches=master git log -1 --branches master git log -1 --branches=*aster A maintainer wanting to apply a patch or series likely has a small set of known branches they apply patches to. Using a glob pattern is not a good fit for that. Instead, allow --guess-branch to be repeated and to take fixed refs. Signed-off-by: Rob Herring Signed-off-by: Konstantin Ryabitsev Link: https://lore.kernel.org/r/20220331195346.1384515-1-robh@kernel.org --- b4/__init__.py | 4 ++-- b4/command.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/b4/__init__.py b/b4/__init__.py index 85a0978..c8189b1 100644 --- a/b4/__init__.py +++ b/b4/__init__.py @@ -643,7 +643,7 @@ class LoreSeries: return len(self.indexes), mismatches - def find_base(self, gitdir: str, branches: Optional[str] = None, maxdays: int = 30) -> Tuple[str, len, len]: + def find_base(self, gitdir: str, branches: Optional[list] = None, maxdays: int = 30) -> Tuple[str, len, len]: # Find the date of the first patch we have pdate = datetime.datetime.now() for lmsg in self.patches: @@ -655,7 +655,7 @@ class LoreSeries: # Find latest commit on that date guntil = pdate.strftime('%Y-%m-%d') if branches: - where = ['--branches', branches] + where = branches else: where = ['--all'] diff --git a/b4/command.py b/b4/command.py index 3a2d58f..6d3c899 100644 --- a/b4/command.py +++ b/b4/command.py @@ -133,7 +133,7 @@ def cmd(): help='Save patches in a quilt-ready folder') sp_am.add_argument('-g', '--guess-base', dest='guessbase', action='store_true', default=False, help='Try to guess the base of the series (if not specified)') - sp_am.add_argument('-b', '--guess-branch', dest='guessbranch', default=None, + sp_am.add_argument('-b', '--guess-branch', dest='guessbranch', nargs='+', action='extend', type=str, default=None, help='When guessing base, restrict to this branch (use with -g)') sp_am.add_argument('--guess-lookback', dest='guessdays', type=int, default=21, help='When guessing base, go back this many days from the patch date (default: 2 weeks)') -- cgit v1.2.3