Mercurial > hg
view tests/test-mq-caches.t @ 11988:8380ed691df8
util: add an interpolate() function to for replacing multiple values
util.interpolate can be used to replace multiple items in a string all at once
(and optionally apply a function to the replacement), without worrying about
recursing:
>>> import util
>>> s = '$foo, $spam'
>>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s)
'bar, eggs'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s)
'spam, foo'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper())
'SPAM, FOO'
The patch also changes filemerge.py to use this new function.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Wed, 18 Aug 2010 18:18:26 -0400 |
parents | 0e4bbe18ff95 |
children | 4c94b6d0fb1c |
line wrap: on
line source
$ branches=.hg/branchheads.cache $ echo '[extensions]' >> $HGRCPATH $ echo '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 mq patch on an empty repo $ hg qnew p1 $ show_branch_cache tip: 0 No branch cache $ echo > pfile $ hg add pfile $ hg qrefresh -m 'patch 1' $ show_branch_cache tip: 0 No branch cache some regular revisions $ hg qpop popping p1 patch queue now empty $ 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 tip: 1 3f910abad313ff802d3a23a7529433872df9b3ae 1 3f910abad313ff802d3a23a7529433872df9b3ae bar 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo add some mq patches $ hg qpush applying p1 now at: p1 $ show_branch_cache tip: 2 3f910abad313ff802d3a23a7529433872df9b3ae 1 3f910abad313ff802d3a23a7529433872df9b3ae bar 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo $ hg qnew p2 $ echo foo > .hg/branch $ echo foo2 >> foo $ hg qrefresh -m 'patch 2' $ show_branch_cache 1 tip: 3 3f910abad313ff802d3a23a7529433872df9b3ae 1 3f910abad313ff802d3a23a7529433872df9b3ae bar 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo branch foo: 3 branch bar: 2 removing the cache $ rm $branches $ show_branch_cache 1 tip: 3 3f910abad313ff802d3a23a7529433872df9b3ae 1 3f910abad313ff802d3a23a7529433872df9b3ae bar 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo branch foo: 3 branch bar: 2 importing rev 1 (the cache now ends in one of the patches) $ hg qimport -r 1 -n p0 $ show_branch_cache 1 tip: 3 3f910abad313ff802d3a23a7529433872df9b3ae 1 3f910abad313ff802d3a23a7529433872df9b3ae bar 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo branch foo: 3 branch bar: 2 $ hg log -r qbase --template 'qbase: {rev}\n' qbase: 1 detect an invalid cache $ hg qpop -a popping p2 popping p1 popping p0 patch queue now empty $ hg qpush -a applying p0 applying p1 applying p2 now at: p2 $ show_branch_cache tip: 3 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff 0 9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo