X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/99c529152847b7e20e48dc477925e315918eed5d..06848faba60e1c4e637b15b608e5bd94989c4196:/stgit/commands/common.py diff --git a/stgit/commands/common.py b/stgit/commands/common.py index 4e802bc..466f584 100644 --- a/stgit/commands/common.py +++ b/stgit/commands/common.py @@ -109,7 +109,7 @@ def git_id(rev): def check_local_changes(): if git.local_changes(): raise CmdException, \ - 'local changes in the tree. Use "refresh" to commit them' + 'local changes in the tree. Use "refresh" or "status --reset"' def check_head_top_equal(): if not crt_series.head_top_equal(): @@ -120,7 +120,9 @@ def check_head_top_equal(): def check_conflicts(): if os.path.exists(os.path.join(basedir.get(), 'conflicts')): - raise CmdException, 'Unsolved conflicts. Please resolve them first' + raise CmdException, \ + 'Unsolved conflicts. Please resolve them first or\n' \ + ' revert the changes with "status --reset"' def print_crt_patch(branch = None): if not branch: @@ -214,7 +216,7 @@ def pop_patches(patches, keep = False): 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. @@ -236,12 +238,26 @@ def parse_patches(patch_args, patch_list): 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] @@ -257,6 +273,9 @@ def parse_patches(patch_args, patch_list): patches += pl + if ordered: + patches = [p for p in patch_list if p in patches] + return patches def name_email(address):