print 'done'
-def parse_patches(patch_args, patch_list):
+def parse_patches(patch_args, patch_list, boundary = 0):
"""Parse patch_args list for patch names in patch_list and return
a list. The names can be individual patches and/or in the
patch1..patch2 format.
if pair[0]:
first = patch_list.index(pair[0])
else:
- first = 0
+ first = -1
# exclusive boundary
if pair[1]:
last = patch_list.index(pair[1]) + 1
else:
- last = len(patch_list)
+ last = -1
+
+ # only cross the boundary if explicitly asked
+ if not boundary:
+ boundary = len(patch_list)
+ if first < 0:
+ if last <= boundary:
+ first = 0
+ else:
+ first = boundary
+ if last < 0:
+ if first < boundary:
+ last = boundary
+ else:
+ last = len(patch_list)
if last > first:
pl = patch_list[first:last]
all_patches = applied_patches + unapplied_patches
if args:
- patches = parse_patches(args, all_patches)
+ patches = parse_patches(args, all_patches, len(applied_patches))
else:
parser.error('No patches specified')
def func(parser, options, args):
"""Show commit log and diff
"""
+ applied = crt_series.get_applied()
+ unapplied = crt_series.get_unapplied()
+
if options.applied:
- patches = crt_series.get_applied()
+ patches = applied
elif options.unapplied:
- patches = crt_series.get_unapplied()
+ patches = unapplied
elif len(args) == 0:
patches = ['HEAD']
else:
# it might be just a commit id
patches = args
else:
- patches = parse_patches(args, crt_series.get_applied()
- + crt_series.get_unapplied())
+ patches = parse_patches(args, applied + unapplied, len(applied))
commit_ids = [git_id(patch) for patch in patches]
commit_str = '\n'.join([git.pretty_commit(commit_id)