summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2022-03-31 14:53:46 -0500
committerKonstantin Ryabitsev <konstantin@linuxfoundation.org>2022-06-14 16:24:08 -0400
commitc95e4d16d87c7c71589c64b1ac94973b354d0820 (patch)
tree85cd848d56dbcc16c092b251dcc5aeb422ca09cf
parentbfe5df6694c8115fa8402943b125c6e47c8eec08 (diff)
downloadb4-c95e4d16d87c7c71589c64b1ac94973b354d0820.tar.gz
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 <guessbranch>' 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 <robh@kernel.org> Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org> Link: https://lore.kernel.org/r/20220331195346.1384515-1-robh@kernel.org
-rw-r--r--b4/__init__.py4
-rw-r--r--b4/command.py2
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)')