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
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