tests/test-mq-caches
author Martin Geisler <mg@lazybytes.net>
Sun, 04 Oct 2009 22:03:41 +0200
changeset 10443 62d484a81dfe
parent 10119 bb5ea66789e3
permissions -rwxr-xr-x
minirst: support containers Text can be grouped into generic containers in reStructuredText: .. container:: foo This is text inside a "foo" container. .. container:: bar This is nested inside two containers. The minirst parser now recognizes these containers. The containers are either pruned completely from the output (included all nested blocks) or they are simply un-indented. So if 'foo' and 'bar' containers are kept, the above example will result in: This is text inside a "foo" container. This is nested inside two containers. If only 'foo' containers are kept, we get: This is text inside a "foo" container. No output is made if only 'bar' containers are kept. This feature will come in handy for implementing different levels of help output (e.g., verbose and debug level help texts).

#!/bin/sh

branches=.hg/branchheads.cache
echo '[extensions]' >> $HGRCPATH
echo 'mq =' >> $HGRCPATH

show_branch_cache()
{
    # force cache (re)generation
    hg log -r does-not-exist 2> /dev/null
    hg log -r tip --template 'tip: {rev}\n'
    if [ -f $branches ]; then
	sort $branches
    else
	echo No branch cache
    fi
    if [ "$1" = 1 ]; then
	for b in foo bar; do
	    hg log -r $b --template "branch $b: "'{rev}\n'
	done
    fi
}

hg init a
cd a
hg qinit -c

echo '# mq patch on an empty repo'
hg qnew p1
show_branch_cache

echo > pfile
hg add pfile
hg qrefresh -m 'patch 1'
show_branch_cache

echo
echo '# some regular revisions'
hg qpop
echo foo > foo
hg add foo
echo foo > .hg/branch
hg ci -m 'branch foo' -d '1000000 0'

echo bar > bar
hg add bar
echo bar > .hg/branch
hg ci -m 'branch bar' -d '1000000 0'
show_branch_cache

echo
echo '# add some mq patches'
hg qpush
show_branch_cache

hg qnew p2
echo foo > .hg/branch
echo foo2 >> foo
hg qrefresh -m 'patch 2'
show_branch_cache 1

echo
echo '# removing the cache'
rm $branches
show_branch_cache 1

echo
echo '# importing rev 1 (the cache now ends in one of the patches)'
hg qimport -r 1 -n p0
show_branch_cache 1
hg log -r qbase --template 'qbase: {rev}\n'

echo
echo '# detect an invalid cache'
hg qpop -a
hg qpush -a
show_branch_cache