Mercurial > hg
diff tests/test-mq-caches @ 3492:fbf8320f25c8
make mq play nicely with the branch cache
- if no patches are applied, don't do anything different
- if the cache includes valid data from one of the patch revisions,
use the cache, but don't save anything new
- if the cache has data from before the patch revisions only,
save what the list of branches would be without the patch revisions
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 23 Oct 2006 23:32:56 -0300 |
parents | |
children | 89820e9b94f2 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-mq-caches Mon Oct 23 23:32:56 2006 -0300 @@ -0,0 +1,76 @@ +#!/bin/sh + +echo '[extensions]' >> $HGRCPATH +echo 'hgext.mq=' >> $HGRCPATH + +show_branch_cache() +{ + branches=.hg/branches.cache + 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 -f .hg/branches.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 +