summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7c47eea)
This is useful since specifying the ".." range would generate all the
applied and unapplied patches for commands like "show" and
"delete". With this patch, the boundary is crossed only if
specifically asked (i.e. the first and last patch of the range are on
each side of the boundary).
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
-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.
"""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:
if pair[0]:
first = patch_list.index(pair[0])
else:
# exclusive boundary
if pair[1]:
last = patch_list.index(pair[1]) + 1
else:
# exclusive boundary
if pair[1]:
last = patch_list.index(pair[1]) + 1
else:
+ 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]
if last > first:
pl = patch_list[first:last]
all_patches = applied_patches + unapplied_patches
if args:
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')
else:
parser.error('No patches specified')
def func(parser, options, args):
"""Show commit log and diff
"""
def func(parser, options, args):
"""Show commit log and diff
"""
+ applied = crt_series.get_applied()
+ unapplied = crt_series.get_unapplied()
+
- patches = crt_series.get_applied()
- patches = crt_series.get_unapplied()
elif len(args) == 0:
patches = ['HEAD']
else:
elif len(args) == 0:
patches = ['HEAD']
else:
# it might be just a commit id
patches = args
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)
commit_ids = [git_id(patch) for patch in patches]
commit_str = '\n'.join([git.pretty_commit(commit_id)