Mercurial > hg-stable
diff tests/test-rebase-abort @ 11316:7fa3968004c1
rebase: --abort doesn't strip away the target changeset (issue2220)
When a changeset is skipped, rebase keeps the previous target as next
target and if the skipped cset is the first one, the recorded target is
actually the original target.
--abort did not detect this situation but simply stripped away the cset.
author | Stefano Tortarolo <stefano.tortarolo@gmail.com> |
---|---|
date | Tue, 08 Jun 2010 18:01:07 +0200 |
parents | 2313dc4d9817 |
children |
line wrap: on
line diff
--- a/tests/test-rebase-abort Wed Jun 09 17:22:59 2010 +0200 +++ b/tests/test-rebase-abort Tue Jun 08 18:01:07 2010 +0200 @@ -6,35 +6,71 @@ echo "graphlog=" >> $HGRCPATH echo "rebase=" >> $HGRCPATH -hg init a -cd a -echo 'c1' >common -hg add common -hg commit -d '0 0' -m "C1" +createrepo() { + rm -rf repo + hg init repo + cd repo + echo 'c1' >common + hg add common + hg commit -d '0 0' -m "C1" -echo 'c2' >>common -hg commit -d '1 0' -m "C2" + echo 'c2' >>common + hg commit -d '1 0' -m "C2" + + echo 'c3' >>common + hg commit -d '2 0' -m "C3" -echo 'c3' >>common -hg commit -d '2 0' -m "C3" + hg update -C 1 + echo 'l1' >>extra + hg add extra + hg commit -d '3 0' -m "L1" -hg update -C 1 -echo 'l1' >>extra -hg add extra -hg commit -d '3 0' -m "L1" + sed -e 's/c2/l2/' common > common.new + mv common.new common + hg commit -d '4 0' -m "L2" +} -sed -e 's/c2/l2/' common > common.new -mv common.new common -hg commit -d '4 0' -m "L2" - -hg glog --template '{rev}: {desc}\n' +echo +createrepo > /dev/null 2>&1 +hg --config extensions.hgext.graphlog= glog --template '{rev}: {desc}\n' echo echo '% Conflicting rebase' -hg rebase -s 3 -d 2 | cleanrebase +hg --config extensions.hgext.rebase= rebase -s 3 -d 2 | cleanrebase echo echo '% Abort' -hg rebase --abort | cleanrebase +hg --config extensions.hgext.rebase= rebase --abort | cleanrebase + +hg --config extensions.hgext.graphlog= glog --template '{rev}: {desc}\n' -hg glog --template '{rev}: {desc}\n' +createrepo() { + rm -rf repo + hg init repo + cd repo + echo "a">a + hg ci -A -m'A' + echo "b">b + hg ci -A -m'B' + echo "c">c + hg ci -A -m'C' + hg up 0 + echo "b">b + hg ci -A -m'B bis' + echo "c1">c + hg ci -A -m'C1' +} +echo +echo '% Rebase and abort without generating new changesets' + +echo +createrepo > /dev/null 2>&1 +hg --config extensions.hgext.graphlog= glog --template '{rev}:{desc|short}\n' + +hg --config extensions.hgext.rebase= rebase -b 4 -d 2 | cleanrebase + +hg --config extensions.hgext.graphlog= glog --template '{rev}:{desc|short}\n' + +hg rebase -a | cleanrebase +hg glog --template '{rev}:{desc|short}\n' +