From: Catalin Marinas Date: Wed, 6 Dec 2006 22:12:14 +0000 (+0000) Subject: Allow ranges for the 'export' command X-Git-Tag: v0.14.3~394 X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/commitdiff_plain/8560c67bce5458f876284afbee43be9ca862529a Allow ranges for the 'export' command The command is now slightly changed in that the arguments for export are patch ranges rather than a directory. The export directory is specified with the --dir option. The patch also removes the --diff option and adds a more general --extension option. Signed-off-by: Catalin Marinas --- diff --git a/contrib/stgit-completion.bash b/contrib/stgit-completion.bash index 37277a9..72861f9 100644 --- a/contrib/stgit-completion.bash +++ b/contrib/stgit-completion.bash @@ -190,7 +190,7 @@ _stg () push) _stg_patches $command _unapplied_patches ;; # patch commands delete) _stg_patches $command _all_patches ;; - export) _stg_patches_options $command _applied_patches "-r --range" ;; + export) _stg_patches $command _applied_patches ;; files) _stg_patches $command _all_patches ;; log) _stg_patches $command _all_patches ;; mail) _stg_patches $command _applied_patches ;; diff --git a/stgit/commands/export.py b/stgit/commands/export.py index ea349c3..35a25ba 100644 --- a/stgit/commands/export.py +++ b/stgit/commands/export.py @@ -27,11 +27,11 @@ from stgit import stack, git, templates help = 'exports a series of patches to (or patches)' -usage = """%prog [options] [] +usage = """%prog [options] [] [] [..] -Export the applied patches into a given directory (defaults to -'patches') in a standard unified GNU diff format. A template file -(defaulting to '.git/patchexport.tmpl' or +Export a range of applied patches to a given directory (defaults to +'patches-') in a standard unified GNU diff format. A template +file (defaulting to '.git/patchexport.tmpl' or '~/.stgit/templates/patchexport.tmpl' or '/usr/share/stgit/templates/patchexport.tmpl') can be used for the patch format. The following variables are supported in the template @@ -46,23 +46,20 @@ file: %(authdate)s - patch creation date %(commname)s - committer's name %(commemail)s - committer's e-mail +""" -'export' can also generate a diff for a range of patches.""" - -options = [make_option('-n', '--numbered', - help = 'prefix the patch names with order numbers', - action = 'store_true'), - make_option('-d', '--diff', - help = 'append .diff to the patch names', - action = 'store_true'), +options = [make_option('-d', '--dir', + help = 'export patches to DIR instead of the default'), make_option('-p', '--patch', help = 'append .patch to the patch names', action = 'store_true'), + make_option('-e', '--extension', + help = 'append .EXTENSION to the patch names'), + make_option('-n', '--numbered', + help = 'prefix the patch names with order numbers', + action = 'store_true'), make_option('-t', '--template', metavar = 'FILE', help = 'Use FILE as a template'), - make_option('-r', '--range', - metavar = '[PATCH1][..[PATCH2]]', - help = 'export patches between PATCH1 and PATCH2'), make_option('-b', '--branch', help = 'use BRANCH instead of the default one'), make_option('-s', '--stdout', @@ -71,12 +68,12 @@ options = [make_option('-n', '--numbered', def func(parser, options, args): - if len(args) == 0: - dirname = 'patches-%s' % crt_series.get_branch() - elif len(args) == 1: - dirname = args[0] + """Export a range of patches. + """ + if options.dir: + dirname = options.dir else: - parser.error('incorrect number of arguments') + dirname = 'patches-%s' % crt_series.get_branch() if not options.branch and git.local_changes(): print 'Warning: local changes in the tree. ' \ @@ -88,9 +85,8 @@ def func(parser, options, args): series = file(os.path.join(dirname, 'series'), 'w+') applied = crt_series.get_applied() - - if options.range: - patches = parse_patches([options.range], applied) + if len(args) != 0: + patches = parse_patches(args, applied) else: patches = applied @@ -118,10 +114,10 @@ def func(parser, options, args): patch_no = 1; for p in patches: pname = p - if options.diff: - pname = '%s.diff' % pname - elif options.patch: + if options.patch: pname = '%s.patch' % pname + elif options.extension: + pname = '%s.%s' % (pname, options.extension) if options.numbered: pname = '%s-%s' % (str(patch_no).zfill(zpadding), pname) pfile = os.path.join(dirname, pname)