From: Karl Hasselström Date: Tue, 11 Sep 2007 00:09:23 +0000 (+0200) Subject: Remove the --force flag to "stg rebase" and "stg pull" X-Git-Tag: v0.14~53 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/stgit/commitdiff_plain/751c890baeb20118bcdea0b735c85995b7f588fa Remove the --force flag to "stg rebase" and "stg pull" Instead, always behave as if the force flag was given; that is, don't check if rebasing would leave a dangling commit behind. Reasons: * The check for this was very strict and caused a lot of false positives. * Everything is recorded in the reflog, so we can't actually lose commits. This fixes bug 9181. Signed-off-by: Karl Hasselström --- diff --git a/stgit/commands/common.py b/stgit/commands/common.py index 27a616f..9815400 100644 --- a/stgit/commands/common.py +++ b/stgit/commands/common.py @@ -318,14 +318,7 @@ def address_or_alias(addr_str): for addr in addr_str.split(',')] return ', '.join([addr for addr in addr_list if addr]) -def prepare_rebase(force=None): - if not force: - # Be sure we won't loose results of stg-(un)commit by error. - # Do not require an existing orig-base for compatibility with 0.12 and earlier. - origbase = crt_series._get_field('orig-base') - if origbase and crt_series.get_base() != origbase: - raise CmdException, 'Rebasing would possibly lose data' - +def prepare_rebase(): # pop all patches applied = crt_series.get_applied() if len(applied) > 0: diff --git a/stgit/commands/pull.py b/stgit/commands/pull.py index 070db99..237bdd9 100644 --- a/stgit/commands/pull.py +++ b/stgit/commands/pull.py @@ -43,9 +43,6 @@ options = [make_option('-n', '--nopush', 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')] def func(parser, options, args): @@ -81,7 +78,7 @@ def func(parser, options, args): if policy not in ['pull', 'fetch-rebase', 'rebase']: raise GitConfigException, 'Unsupported pull-policy "%s"' % policy - applied = prepare_rebase(force=options.force) + applied = prepare_rebase() # pull the remote changes if policy == 'pull': diff --git a/stgit/commands/rebase.py b/stgit/commands/rebase.py index c68f8e7..513729a 100644 --- a/stgit/commands/rebase.py +++ b/stgit/commands/rebase.py @@ -34,9 +34,6 @@ options = [make_option('-n', '--nopush', 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')] def func(parser, options, args): @@ -56,7 +53,7 @@ def func(parser, options, args): if git_id(args[0]) == None: raise GitException, 'Unknown revision: %s' % args[0] - applied = prepare_rebase(force=options.force) + applied = prepare_rebase() rebase(args[0]) post_rebase(applied, options.nopush, options.merged) diff --git a/stgit/stack.py b/stgit/stack.py index bdb4e38..94856b8 100644 --- a/stgit/stack.py +++ b/stgit/stack.py @@ -623,7 +623,6 @@ class Series(PatchSet): self.create_empty_field('applied') self.create_empty_field('unapplied') - self._set_field('orig-base', git.get_head()) config.set(self.format_version_key(), str(FORMAT_VERSION)) diff --git a/t/t2100-pull-policy-fetch.sh b/t/t2100-pull-policy-fetch.sh index 1f50069..28901b1 100755 --- a/t/t2100-pull-policy-fetch.sh +++ b/t/t2100-pull-policy-fetch.sh @@ -55,18 +55,4 @@ test_expect_success \ test `wc -l file3 && stg add file3 && stg refresh) && - (cd clone && stg commit && stg new c2 -m c2 && - echo a >> file && stg refresh) - ' -test_expect_success \ - 'Try to and commit a patch in clone' \ - '(cd clone && ! stg pull)' - test_done diff --git a/t/t2102-pull-policy-rebase.sh b/t/t2102-pull-policy-rebase.sh index b2fbfcf..ce2e32f 100755 --- a/t/t2102-pull-policy-rebase.sh +++ b/t/t2102-pull-policy-rebase.sh @@ -36,28 +36,4 @@ test_expect_success \ test `wc -l file3 && stg add file3 && stg refresh && - stg branch stack && stg commit && stg new c2 -m c2 && - echo a >> file && stg refresh - ' -test_expect_success \ - 'Try to pull/rebase now that stack base has moved' \ - '! stg pull' - -test_expect_success \ - 'Force the pull/rebase, but do not push yet' \ - 'stg pull --force --nopush' -test_expect_success \ - '...check we lost the committed patch' \ - '! test -e file' -test_expect_success \ - '...and check we get a conflict while pushing' \ - '! stg push' - test_done