~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow patch ranges for the 'pop' command
[stgit]
/
stgit
/
commands
/
common.py
diff --git
a/stgit/commands/common.py
b/stgit/commands/common.py
index
4e802bc
..
8a625f8
100644
(file)
--- a/
stgit/commands/common.py
+++ b/
stgit/commands/common.py
@@
-214,7
+214,7
@@
def pop_patches(patches, keep = False):
print 'done'
print 'done'
-def parse_patches(patch_args, patch_list):
+def parse_patches(patch_args, patch_list
, boundary = 0, ordered = False
):
"""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.
@@
-236,12
+236,26
@@
def parse_patches(patch_args, patch_list):
if pair[0]:
first = patch_list.index(pair[0])
else:
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:
# 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]
if last > first:
pl = patch_list[first:last]
@@
-257,6
+271,9
@@
def parse_patches(patch_args, patch_list):
patches += pl
patches += pl
+ if ordered:
+ patches = [p for p in patch_list if p in patches]
+
return patches
def name_email(address):
return patches
def name_email(address):