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 <kha@treskal.com>
---
This is not in my safe branch, on purpose; I want to hear any protests
and test it a bit more first. It is however included in
git://repo.or.cz/stgit/kha.git experimental
for anyone feeling adventurous.
stgit/commands/common.py | 9 +--------
stgit/commands/pull.py | 5 +----
stgit/commands/rebase.py | 5 +----
stgit/stack.py | 1 -
t/t2100-pull-policy-fetch.sh | 14 --------------
t/t2102-pull-policy-rebase.sh | 24 ------------------------
6 files changed, 3 insertions(+), 55 deletions(-)
diff --git a/stgit/commands/common.py b/stgit/commands/common.py
index f3fa89d..9e0a801 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 ad485a5..0def3ba 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):
@@ -87,7 +84,7 @@ def func(parser, options, args):
else:
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 906e6b1..c546bfe 100644
--- a/stgit/stack.py
+++ b/stgit/stack.py
@@ -604,7 +604,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 e1398a3..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 <clone/file2` = 3
'
-# this one exercises the guard against commits
-# (use a new file to avoid mistaking a conflict for a success)
-test_expect_success \
- 'New upstream commit and commit a patch in clone' \
- '
- (cd upstream && stg new u2 -m u2 &&
- echo a > file3 && stg add file3 && stg refresh) &&
- (cd clone && stg commit && stg new c2 -m c2 &&
- echo a >> file && stg refresh)
- '
-test_expect_failure \
- '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 670673d..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 <file2` = 2
'
-# this one exercises the guard against commits
-# (use a new file to avoid mistaking a conflict for a success)
-test_expect_success \
- 'New commit in parent and commit a patch in stack' \
- '
- stg branch parent && stg new u2 -m u2 &&
- echo c > file3 && stg add file3 && stg refresh &&
- stg branch stack && stg commit && stg new c2 -m c2 &&
- echo a >> file && stg refresh
- '
-test_expect_failure \
- '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_failure \
- '...check we lost the committed patch' \
- 'test -e file'
-test_expect_failure \
- '...and check we get a conflict while pushing' \
- 'stg push'
-
test_done
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Linus Torvalds | Linux 2.6.27-rc5 |
| Jared Hulbert | [PATCH 00/10] AXFS: Advanced XIP filesystem |
| Linus Torvalds | Linux 2.6.27-rc8 |
git: | |
| David Miller | [GIT]: Networking |
| Antonio Almeida | HTB accuracy for high speed |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
