From 3961dac1e645b7414e9bc3bc4088e2e7d0c5cbe8 Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Tue, 12 Jul 2005 18:36:06 +0100 Subject: [PATCH] Add --range option to export Useful when you only need to export a range of the applied patches. Signed-off-by: Catalin Marinas --- stgit/main.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/stgit/main.py b/stgit/main.py index 2faac4f..e235d10 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -669,7 +669,42 @@ def export(parser, options, args): os.makedirs(dirname) series = file(os.path.join(dirname, 'series'), 'w+') - patches = crt_series.get_applied() + applied = crt_series.get_applied() + + if options.range: + boundaries = options.range.split(':') + if len(boundaries) == 1: + start = boundaries[0] + stop = boundaries[0] + if len(boundaries) == 2: + if boundaries[0] == '': + start = applied[0] + else: + start = boundaries[0] + if boundaries[1] == '': + stop = applied[-1] + else: + stop = boundaries[1] + else: + raise MainException, 'incorrect parameters to "--range"' + + if start in applied: + start_idx = applied.index(start) + else: + raise MainException, 'Patch "%s" not applied' % start + if stop in applied: + stop_idx = applied.index(stop) + 1 + else: + raise MainException, 'Patch "%s" not applied' % stop + + if start_idx >= stop_idx: + raise MainException, 'Incorrect patch range order' + else: + start_idx = 0 + stop_idx = -1 + + patches = applied[start_idx:stop_idx] + num = len(patches) zpadding = len(str(num)) if zpadding < 2: @@ -741,7 +776,11 @@ export_cmd = \ help = 'append .diff to the patch names', action = 'store_true'), make_option('-t', '--template', metavar = 'FILE', - help = 'Use FILE as a template')]) + help = 'Use FILE as a template'), + make_option('-r', '--range', + metavar = '[PATCH1][:[PATCH2]]', + help = 'export patches between ' \ + 'PATCH1 and PATCH2')]) # # The commands map -- 2.11.0