All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: tools@linux.kernel.org
Subject: [PATCH] am: Fix broken guessbranch handling
Date: Thu, 31 Mar 2022 14:53:46 -0500	[thread overview]
Message-ID: <20220331195346.1384515-1-robh@kernel.org> (raw)

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>
---
 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 ec1a6da44144..be934e53ca0d 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 3a2d58f364e5..6d3c899480ec 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)')
-- 
2.32.0


             reply	other threads:[~2022-03-31 19:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31 19:53 Rob Herring [this message]
2022-06-14 20:25 ` [PATCH] am: Fix broken guessbranch handling Konstantin Ryabitsev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220331195346.1384515-1-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=tools@linux.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.