summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2020-05-04 00:52:44 -0700
committerSimon Glass <sjg@chromium.org>2020-05-29 20:55:45 -0600
commit14aa35ad551b3d35a5c7ba8871eb67bd05f1f9b0 (patch)
tree5fe89636262e3830b7f3bc927e651c996093570d
parent0fc01bf826036698a8d0eb8405e832a6a759472e (diff)
patman: Add an option to create patches without binary contents
Some mailing lists have size limits and when we add binary contents to our patches it's easy to exceed the size limits. Git supports a command line option "--no-binary" to generate patches without any binary contents. Add an option in patman to handle this. Note with this option patches cannot be applied properly, but they are still useful for code review. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--tools/patman/README5
-rw-r--r--tools/patman/gitutil.py4
-rwxr-xr-xtools/patman/main.py5
3 files changed, 12 insertions, 2 deletions
diff --git a/tools/patman/README b/tools/patman/README
index 02d5829744..f40defb5ba 100644
--- a/tools/patman/README
+++ b/tools/patman/README
@@ -474,6 +474,11 @@ print out the command line patman would have used.
not later when you can't remember which patch you changed. You can always
go back and change or remove logs from commits.
+7. Some mailing lists have size limits and when we add binary contents to
+our patches it's easy to exceed the size limits. Use "--no-binary" to
+generate patches without any binary contents. You are supposed to include
+a link to a git repository in your "Commit-notes", "Series-notes" or
+"Cover-letter" for maintainers to fetch the original commit.
Other thoughts
==============
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
index 770a051014..72fc95d558 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patman/gitutil.py
@@ -254,7 +254,7 @@ def Fetch(git_dir=None, work_tree=None):
if result.return_code != 0:
raise OSError('git fetch: %s' % result.stderr)
-def CreatePatches(start, count, series):
+def CreatePatches(start, count, ignore_binary, series):
"""Create a series of patches from the top of the current branch.
The patch files are written to the current directory using
@@ -270,6 +270,8 @@ def CreatePatches(start, count, series):
if series.get('version'):
version = '%s ' % series['version']
cmd = ['git', 'format-patch', '-M', '--signoff']
+ if ignore_binary:
+ cmd.append('--no-binary')
if series.get('cover'):
cmd.append('--cover-letter')
prefix = series.GetPatchPrefix()
diff --git a/tools/patman/main.py b/tools/patman/main.py
index 72c67b8bbd..29518361e5 100755
--- a/tools/patman/main.py
+++ b/tools/patman/main.py
@@ -58,6 +58,9 @@ parser.add_option('-T', '--thread', action='store_true', dest='thread',
default=False, help='Create patches as a single thread')
parser.add_option('--cc-cmd', dest='cc_cmd', type='string', action='store',
default=None, help='Output cc list for patch file (used by git)')
+parser.add_option('--no-binary', action='store_true', dest='ignore_binary',
+ default=False,
+ help="Do not output contents of changes in binary files")
parser.add_option('--no-check', action='store_false', dest='check_patch',
default=True,
help="Don't check for patch compliance")
@@ -144,7 +147,7 @@ else:
if options.count:
series = patchstream.GetMetaData(options.start, options.count)
cover_fname, args = gitutil.CreatePatches(options.start, options.count,
- series)
+ options.ignore_binary, series)
# Fix up the patch files to our liking, and insert the cover letter
patchstream.FixPatches(series, args)