tests/test-parentrevspec
author Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
Tue, 18 Dec 2007 14:11:13 -0600
changeset 5664 da72b4d24797
parent 5283 4fe04b183fd8
child 6385 0d4e068e9e52
permissions -rwxr-xr-x
Fix income/pull with bundle and -R (issue 820). Uses ui.setconfig() to tell bundlerepo where the main repo is. This is needed for when the --repository option is used. Adds tests to test-bundle and a new test script test-mq-pull-from-bundle, which plays out the situation that initially made me detect this bug (hg -R .hg/patches pull ../bundle.hg).

#!/bin/sh

commit()
{
    msg=$1
    p1=$2
    p2=$3

    if [ "$p1" ]; then
	hg up -qC $p1
    fi

    if [ "$p2" ]; then
	HGMERGE=true hg merge -q $p2
    fi

    echo >> foo

    hg commit -d '0 0' -qAm "$msg" foo
}

hg init repo
cd repo

echo '[extensions]' > .hg/hgrc
echo 'hgext.parentrevspec =' >> .hg/hgrc

commit '0: add foo'
commit '1: change foo 1'
commit '2: change foo 2a'
commit '3: change foo 3a'
commit '4: change foo 2b' 1
commit '5: merge' 3 4
commit '6: change foo again'

hg log --template '#rev#:#node|short# #parents#\n'
echo

lookup()
{
    for rev in "$@"; do
	printf "$rev: "
	hg id -nr $rev
    done
    true
}

tipnode=`hg id -ir tip`

echo 'should work with tag/branch/node/rev'
for r in tip default $tipnode 6; do
    lookup "$r^"
done
echo

echo 'some random lookups'
lookup "6^^" "6^^^" "6^^^^" "6^^^^^" "6^^^^^^" "6^1" "6^2" "6^^2" "6^1^2" "6^^3"
lookup "6~" "6~1" "6~2" "6~3" "6~4" "6~5" "6~42" "6~1^2" "6~1^2~2"
echo

echo 'with a tag "6^" pointing to rev 1'
hg tag -l -r 1 "6^"
lookup "6^" "6^1" "6~1" "6^^"
echo

echo 'with a tag "foo^bar" pointing to rev 2'
hg tag -l -r 2 "foo^bar"
lookup "foo^bar" "foo^bar^"