##// END OF EJS Templates
rebase: --abort doesn't strip away the target changeset (issue2220)...
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.

File last commit:

r11316:7fa39680 default
r11316:7fa39680 default
Show More
test-rebase-abort
76 lines | 1.5 KiB | text/plain | TextLexer
#!/bin/sh
. $TESTDIR/helpers.sh
echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
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 '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"
sed -e 's/c2/l2/' common > common.new
mv common.new common
hg commit -d '4 0' -m "L2"
}
echo
createrepo > /dev/null 2>&1
hg --config extensions.hgext.graphlog= glog --template '{rev}: {desc}\n'
echo
echo '% Conflicting rebase'
hg --config extensions.hgext.rebase= rebase -s 3 -d 2 | cleanrebase
echo
echo '% Abort'
hg --config extensions.hgext.rebase= rebase --abort | cleanrebase
hg --config extensions.hgext.graphlog= 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'