diff options
author | Rob Herring <robh@kernel.org> | 2022-03-31 14:53:46 -0500 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2022-06-14 16:24:08 -0400 |
commit | c95e4d16d87c7c71589c64b1ac94973b354d0820 (patch) | |
tree | 85cd848d56dbcc16c092b251dcc5aeb422ca09cf | |
parent | bfe5df6694c8115fa8402943b125c6e47c8eec08 (diff) | |
download | b4-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__.py | 4 | ||||
-rw-r--r-- | 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)') |