D7728: rebase: add test to demonstrate issue6180
khanchi97 (Sushil khanchi)
phabricator at mercurial-scm.org
Fri Dec 27 16:56:59 UTC 2019
khanchi97 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
It will be fixed in next patch.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7728
AFFECTED FILES
tests/test-rebase-conflicts.t
CHANGE DETAILS
diff --git a/tests/test-rebase-conflicts.t b/tests/test-rebase-conflicts.t
--- a/tests/test-rebase-conflicts.t
+++ b/tests/test-rebase-conflicts.t
@@ -429,3 +429,63 @@
|/
o 0:draft 'A'
+Test to make sure that pruning while rebasing doesn't confuse rebase (issue6180)
+ $ cat >> $HGRCPATH <<EOF
+ > [experimental]
+ > evolution.createmarkers=True
+ > evolution.allowunstable=True
+ > [alias]
+ > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
+ > EOF
+
+The test case below starts a rebase of 2 commits and runs into conflicts on
+the first one. We then decide we don't want the changes from that commit, so
+we revert the changes and also prune the original commit.
+Now what we expect from `hg rebase --continue` is that it skip rebasing first
+one (since it's pruned) but don't skip second one.
+
+ $ hg init issue6180
+ $ cd issue6180
+ $ echo 0 > a
+ $ hg ci -Aqm 'add a'
+ $ echo 1 > a
+ $ hg ci -m 'edit a'
+ $ hg co -q 0
+ $ echo 2 > a
+ $ hg ci -qm 'conflict in a'
+ $ echo 3 > b
+ $ hg ci -Aqm 'add b'
+ $ hg tglog
+ @ 3:draft 'add b'
+ |
+ o 2:draft 'conflict in a'
+ |
+ | o 1:draft 'edit a'
+ |/
+ o 0:draft 'add a'
+
+ $ hg rebase -d 1
+ rebasing 2:06a50ac6b5ab "conflict in a"
+ merging a
+ warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+ unresolved conflicts (see hg resolve, then hg rebase --continue)
+ [1]
+ $ echo 1 > a
+ $ hg debugobsolete $(hg id -ir 2 --debug)
+ 1 new obsolescence markers
+ obsoleted 1 changesets
+ 1 new orphan changesets
+ $ hg resolve -m
+ (no more unresolved files)
+ continue: hg rebase --continue
+XXX: it should have rebased revision 3 since it made changes unrelated to
+destination, so no reason to say "its destination already has all its changes"
+ $ hg rebase -c
+ note: not rebasing 2:06a50ac6b5ab "conflict in a", it has no successor
+ rebasing 3:aea370672fd7 "add b" (tip)
+ note: not rebasing 3:aea370672fd7 "add b" (tip), its destination already has all its changes
+ $ hg tglog
+ @ 1:draft 'edit a'
+ |
+ o 0:draft 'add a'
+
To: khanchi97, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list