view tests/test-rebase-interruptions @ 10253:b190a8125b43 stable

Work around AIX shell builtin printf not handling \NNN. On AIX, ksh builtin printf does not understand \NNN. Some tests use this to generate test data, and so fail on AIX. Rework these tests to use python to generate the correct characters. This fixes the tests on AIX and should be more generally portable.
author Jim Hague <jim.hague@acm.org>
date Wed, 06 Jan 2010 18:03:33 +0000
parents 8766fee6f225
children b345b1cc124f
line wrap: on
line source

#!/bin/sh

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

BASE=`pwd`

addcommit () {
    echo $1 > $1
    hg add $1
    hg commit -d "${2} 0" -m $1
}

commit () {
    hg commit -d "${2} 0" -m $1
}

createrepo () {
    cd $BASE
    rm -rf a
    hg init a
    cd a
    addcommit "A" 0
    addcommit "B" 1
    echo "C" >> A
    commit "C" 2

    hg update -C 0
    echo "D" >> A
    commit "D" 3
    addcommit "E" 4
}

echo "% Changes during an interruption - continue"
createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'

echo
echo "% - Rebasing B onto E"
hg rebase -s 1 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'

echo
echo "% - Force a commit on C during the interruption"
hg update -C 2
addcommit "Extra" 5
hg glog  --template '{rev}: {desc}\n'

echo
echo "% - Resume the rebasing"
hg rebase --continue

echo
echo "% - Solve the conflict and go on"
echo 'conflict solved' > A
rm A.orig
hg resolve -m A
hg rebase --continue
hg glog  --template '{rev}: {desc}\n'

echo
echo
echo "% Changes during an interruption - abort"
createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'

echo
echo "% Rebasing B onto E"
hg rebase -s 1 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'

echo
echo "% Force a commit on B' during the interruption"
hg update -C 5
addcommit "Extra" 6
hg glog  --template '{rev}: {desc}\n'

echo
echo "% Abort the rebasing"
hg rebase --abort
hg glog  --template '{rev}: {desc}\n'

exit 0