view tests/test-mq-caches @ 7659:25ac72ca68f6

Add Lee Cantey's installer icon to win32 installer Add Lee Cantey's installer icon to contrib/win32 and update mercurial.iss accordingly
author Pascal Quantin <pascal.quantin@wavecom.com>
date Thu, 15 Jan 2009 14:19:29 +0100
parents 3ee3bc5d06c5
children 816b708f23af
line wrap: on
line source

#!/bin/sh

branches=.hg/branch.cache
echo '[extensions]' >> $HGRCPATH
echo 'hgext.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