提交 d9dc99e3 编写于 作者: S Simon Glass

patman: Allow skipping patches at the end

The -s option allows skipping patches at the top of the branch. Sometimes
there are commits at the bottom that need to be skipped. At present it is
necessary to count the number of commits and then use -c to tell patman
how many to process.

Add a -e option to easily skip a number of commits at the bottom of the
branch.
Signed-off-by: NSimon Glass <sjg@chromium.org>
上级 e9799e08
......@@ -20,7 +20,7 @@ def setup():
"""Do required setup before doing anything"""
gitutil.Setup()
def prepare_patches(col, branch, count, start, ignore_binary):
def prepare_patches(col, branch, count, start, end, ignore_binary):
"""Figure out what patches to generate, then generate them
The patch files are written to the current directory, e.g. 0001_xxx.patch
......@@ -32,6 +32,8 @@ def prepare_patches(col, branch, count, start, ignore_binary):
count (int): Number of patches to produce, or -1 to produce patches for
the current branch back to the upstream commit
start (int): Start partch to use (0=first / top of branch)
end (int): End patch to use (0=last one in series, 1=one before that,
etc.)
ignore_binary (bool): Don't generate patches for binary files
Returns:
......@@ -50,7 +52,7 @@ def prepare_patches(col, branch, count, start, ignore_binary):
'No commits found to process - please use -c flag'))
# Read the metadata from the commits
to_do = count
to_do = count - end
series = patchstream.GetMetaData(branch, start, to_do)
cover_fname, patch_files = gitutil.CreatePatches(
branch, start, to_do, ignore_binary, series)
......@@ -159,7 +161,7 @@ def send(options):
setup()
col = terminal.Color()
series, cover_fname, patch_files = prepare_patches(
col, options.branch, options.count, options.start,
col, options.branch, options.count, options.start, options.end,
options.ignore_binary)
ok = check_patches(series, patch_files, options.check_patch,
options.verbose)
......
......@@ -430,7 +430,8 @@ complicated as possible''')
col = terminal.Color()
with capture_sys_output() as _:
_, cover_fname, patch_files = control.prepare_patches(
col, branch=None, count=-1, start=0, ignore_binary=False)
col, branch=None, count=-1, start=0, end=0,
ignore_binary=False)
self.assertIsNone(cover_fname)
self.assertEqual(2, len(patch_files))
......@@ -438,9 +439,17 @@ complicated as possible''')
self.assertEqual(3, gitutil.CountCommitsToBranch('second'))
with capture_sys_output() as _:
_, cover_fname, patch_files = control.prepare_patches(
col, branch='second', count=-1, start=0,
col, branch='second', count=-1, start=0, end=0,
ignore_binary=False)
self.assertIsNotNone(cover_fname)
self.assertEqual(3, len(patch_files))
# Check that it can skip patches at the end
with capture_sys_output() as _:
_, cover_fname, patch_files = control.prepare_patches(
col, branch='second', count=-1, start=0, end=1,
ignore_binary=False)
self.assertIsNotNone(cover_fname)
self.assertEqual(2, len(patch_files))
finally:
os.chdir(orig_dir)
......@@ -35,6 +35,8 @@ parser.add_option('-b', '--branch', type='str',
help="Branch to process (by default, the current branch)")
parser.add_option('-c', '--count', dest='count', type='int',
default=-1, help='Automatically create patches from top n commits')
parser.add_option('-e', '--end', type='int', default=0,
help='Commits to skip at end of patch list')
parser.add_option('-i', '--ignore-errors', action='store_true',
dest='ignore_errors', default=False,
help='Send patches email even if patch errors are found')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册