Signed-off-by: Yann Dirson <ydirson@xxxxxxxxxx> --- stgit/commands/refresh.py | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff --git a/stgit/commands/refresh.py b/stgit/commands/refresh.py index 610d18a..ea0fe6f 100644 --- a/stgit/commands/refresh.py +++ b/stgit/commands/refresh.py @@ -66,6 +66,8 @@ options = [make_option('-f', '--force', make_option('--commemail', help = 'use COMMEMAIL as the committer ' \ 'e-mail'), + make_option('-p', '--patch', + help = 'refresh named (applied) PATCH instead of the top one'), make_option('--sign', help = 'add Signed-off-by line', action = 'store_true'), @@ -80,9 +82,15 @@ def func(parser, options, args): if autoresolved != 'yes': check_conflicts() - patch = crt_series.get_current() - if not patch: - raise CmdException, 'No patches applied' + if options.patch: + patch = options.patch + if not crt_series.patch_applied(patch): + raise CmdException, 'Patches "%s" not applied' % patch + origpatch = crt_series.get_current() + else: + patch = crt_series.get_current() + if not patch: + raise CmdException, 'No patches applied' if not options.force: check_head_top_equal() @@ -110,6 +118,13 @@ def func(parser, options, args): or options.authname or options.authemail or options.authdate \ or options.commname or options.commemail \ or options.sign or options.ack: + + if options.patch: + applied = crt_series.get_applied() + between = applied[applied.index(patch)+1:] + between.reverse() + pop_patches(between) + print 'Refreshing patch "%s"...' % patch, sys.stdout.flush() @@ -126,6 +141,10 @@ def func(parser, options, args): committer_email = options.commemail, backup = True, sign_str = sign_str) + if options.patch: + between.reverse() + push_patches(between) + print 'done' else: print 'Patch "%s" is already up to date' % patch - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html