tests/test-parentrevspec
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Thu, 21 Feb 2008 16:22:31 -0300
changeset 6158 23ffe82615d8
parent 5283 4fe04b183fd8
child 6385 0d4e068e9e52
permissions -rwxr-xr-x
repo.status: also compare flags for files in the lookup list. We might be able to do something smarter about this in dirstate.status for files in normallookup state, but that would require some extra care to keep backwards compatibility.

#!/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^"