tests/test-mq-caches
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Sun, 03 Feb 2008 21:03:46 -0200
changeset 5981 ca2af0c81c9a
parent 4177 a7af0eeae8a3
child 6160 3ee3bc5d06c5
permissions -rwxr-xr-x
mq: don't allow patches with some reserved names The current list of reserved names includes only mq control files. Also, reserve names starting with ".hg" (to avoid troubles with e.g. .hgignore and .hgtags), and with ".mq" (to allow future extensions). This should fix issue841.

#!/bin/sh

echo '[extensions]' >> $HGRCPATH
echo 'hgext.mq=' >> $HGRCPATH

show_branch_cache()
{
    branches=.hg/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 $branches
    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 .hg/branch.cache
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