view tests/test-rebase-conflicts @ 7429:dbc40381620e

tests: Skip tests if they will fail because of outer repo For different reasons these tests will fail if run in a tmpdir which is in a hg repo. The following three tests assumes no .hg in path dirs - I don't know how to work around that: * test-dispatch explicitly tests for no repo and expects "abort: There is no Mercurial repository here (.hg not found)!" * test-extension expects parentui to be None when not cd'ed to a repo dir * test-globalopts tests that implicit -R works correctly - that could perhaps be done from another repo instead of assuming no repo The following two might be worth investigating further: * test-convert-svn-sink fails for unknown reasons, starting with "abort: unresolved merge conflicts (see hg resolve)" * test-glog gets strange failures when testing "from outer space"
author Mads Kiilerich <mads@kiilerich.com>
date Thu, 27 Nov 2008 00:57:31 +0100
parents 45495d784ad6
children 8766fee6f225
line wrap: on
line source

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH

cleanoutput () {
    sed -e 's/\(Rebase status stored to\).*/\1/'  \
        -e 's/\(Rebase status restored from\).*/\1/' \
        -e 's/\(saving bundle to \).*/\1/'
}

hg init a
cd a
echo 'c1' >common
hg add common
hg commit -d '0 0' -u test -m "C1"

echo 'c2' >>common
hg commit -d '1 0' -u test -m "C2"

echo 'c3' >>common
hg commit -d '2 0' -u test -m "C3"

hg update -C 1
echo 'l1' >>extra
hg add extra
hg commit -d '3 0' -u test -m "L1"

sed -e 's/c2/l2/' common > common.new
mv common.new common
hg commit -d '4 0' -u test -m "L2"

echo 'l3' >> extra2
hg add extra2
hg commit -d '5 0' -u test -m "L3"

hg glog  --template '{rev}: {desc}\n'

echo
echo '% Try to call --continue'
hg rebase --continue

echo
echo '% Conflicting rebase'
hg rebase -s 3 -d 2

echo
echo '% Try to continue without solving the conflict'
hg rebase --continue 

echo
echo '% Conclude rebase'
echo 'resolved merge' >common
hg resolve -m common
hg rebase --continue 2>&1 | cleanoutput

hg glog  --template '{rev}: {desc}\n'

echo
echo '% Check correctness'
echo '  - Rev. 0'
hg cat -r 0 common

echo '  - Rev. 1'
hg cat -r 1 common

echo '  - Rev. 2'
hg cat -r 2 common

echo '  - Rev. 3'
hg cat -r 3 common

echo '  - Rev. 4'
hg cat -r 4 common

echo '  - Rev. 5'
hg cat -r 5 common