Mercurial > hg
view tests/test-mq-caches @ 9717:68a1b9d0663e
update: allow branch crossing without -c or -C, with no uncommitted changes
Update will now allow crossing branches within the same named branch,
when given a specific revision, if the working dir is clean, without
requiring the -c or -C option. Abort if no revision is given and
this would cross branches. Minor change to abort message if
uncommitted changes are found.
Modify test-update-branches and output to reflect the altered case. Modify
test-merge5.out to reflect the altered case. Modify
test-up-local-change.out with new message.
author | Stuart W Marks <smarks@smarks.org> |
---|---|
date | Thu, 05 Nov 2009 10:53:59 +0100 |
parents | 5b7da468531b |
children | bb5ea66789e3 |
line wrap: on
line source
#!/bin/sh branches=.hg/branchheads.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