tests/test-rebase-pull
author Ry4an Brase <ry4an-hg@ry4an.org>
Wed, 14 Apr 2010 00:24:47 -0500
branchstable
changeset 10904 26d1d23e5a2b
parent 10775 c52057614c72
child 11198 b345b1cc124f
permissions -rwxr-xr-x
Fix --blacklist when --jobs > 1 in run_tests.py. The options parsing logic replaces the options.blacklist initial value, a list of filenames, with a dict of test names to filenames. When runchildren rebuilds the command line to launch child processes the dict is flattened and provided as a malformed argument when a filename is expected. Fix is to remove the blacklist option from child invocations since the filtering is handled in the parent anyway.

#!/bin/sh

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

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

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

rm -rf a
hg init a
cd a
addcommit "C1" 0
addcommit "C2" 1

cd ..
hg clone a b
# This is needed to test pull --rebase
hg clone a c

cd b
addcommit "L1" 2

cd ../a
addcommit "R1" 3

cd ../b
echo
echo "% Now b has one revision to be pulled from a"
hg pull --rebase 2>&1 | sed -e 's/\(saving bundle to \).*/\1/' \
                -e 's/\(pulling from \).*/\1/'

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

echo
echo "% Re-run pull --rebase"
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'

echo
echo "% Invoke pull --rebase and nothing to rebase"
cd ../c
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
hg glog --template '{rev}\n' -l 1

echo
echo "% pull --rebase --update should ignore --update"
hg pull --rebase --update 2>&1 | sed 's/\(pulling from \).*/\1/'

echo
echo "% pull --rebase doesn't update if nothing has been pulled"
hg up 1
hg pull --rebase 2>&1 | sed 's/\(pulling from \).*/\1/'
hg glog --template '{rev}\n' -l 1

exit 0