X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/baf8241d1b7835ba31125d2b75683601ee2b0403..1de97e5f5e62a46d69515052a860138e417f149b:/stgit/commands/goto.py diff --git a/stgit/commands/goto.py b/stgit/commands/goto.py index 60a917e..66f49df 100644 --- a/stgit/commands/goto.py +++ b/stgit/commands/goto.py @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from stgit.commands import common from stgit.lib import transaction from stgit import argparse +from stgit.argparse import opt help = 'Push or pop patches to the given one' kind = 'stack' @@ -27,7 +28,7 @@ Push/pop patches to/from the stack until the one given on the command line becomes current.""" args = [argparse.other_applied_patches, argparse.unapplied_patches] -options = [] +options = argparse.keep_option() directory = common.DirectoryHasRepositoryLib() @@ -38,14 +39,16 @@ def func(parser, options, args): stack = directory.repository.current_stack iw = stack.repository.default_iw - trans = transaction.StackTransaction(stack, 'goto') + clean_iw = (not options.keep and iw) or None + trans = transaction.StackTransaction(stack, 'goto', + check_clean_iw = clean_iw) if patch in trans.applied: to_pop = set(trans.applied[trans.applied.index(patch)+1:]) assert not trans.pop_patches(lambda pn: pn in to_pop) elif patch in trans.unapplied: try: for pn in trans.unapplied[:trans.unapplied.index(patch)+1]: - trans.push_patch(pn, iw) + trans.push_patch(pn, iw, allow_interactive = True) except transaction.TransactionHalted: pass elif patch in trans.hidden: