"""
import sys, os
-from optparse import OptionParser, make_option
-
+from stgit.argparse import opt
from stgit.commands.common import *
from stgit.utils import *
from stgit import stack, git
+help = 'Move the stack base to another point in history'
+kind = 'stack'
+usage = ['[options] <new-base-id>']
+description = """
+Pop all patches from current stack, move the stack base to the given
+<new-base-id> and push the patches back.
+
+If you experience merge conflicts, resolve the problem and continue
+the rebase by executing the following sequence:
-help = 'move the stack base to another point in history'
-usage = """%prog [options] <new-base-id>
+ $ stg resolved -a [-i]
+ $ stg refresh
+ $ stg goto top-patch
-Pop all patches from current stack, move the stack base to the given
-<new-base-id> and push the patches back."""
-
-options = [make_option('-n', '--nopush',
- help = 'do not push the patches back after rebasing',
- action = 'store_true'),
- make_option('-m', '--merged',
- help = 'check for patches merged upstream',
- action = 'store_true'),
- make_option('--force',
- help = 'force rebase even if the stack based was moved by (un)commits',
- action = 'store_true')]
+Or if you want to skip that patch:
+
+ $ stg push --undo
+ $ stg push next-patch..top-patch"""
+
+options = [
+ opt('-n', '--nopush', action = 'store_true',
+ short = 'Do not push the patches back after rebasing'),
+ opt('-m', '--merged', action = 'store_true',
+ short = 'Check for patches merged upstream')]
+
+directory = DirectoryGotoToplevel(log = True)
def func(parser, options, args):
"""Rebase the current stack
check_local_changes()
check_conflicts()
- check_head_top_equal()
+ check_head_top_equal(crt_series)
# ensure an exception is raised before popping on non-existent target
- if git_id(args[0]) == None:
- raise GitException, 'Unknown revision: %s' % git_id
+ if git_id(crt_series, args[0]) == None:
+ raise GitException, 'Unknown revision: %s' % args[0]
- applied = prepare_rebase(real_rebase=True, force=options.force)
- rebase(args[0])
- post_rebase(applied, options.nopush, options.merged)
+ applied = prepare_rebase(crt_series)
+ rebase(crt_series, args[0])
+ post_rebase(crt_series, applied, options.nopush, options.merged)
- print_crt_patch()
+ print_crt_patch(crt_series)