Mercurial > hg
view tests/test-mq-qdiff @ 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 | a84f14228b1d |
children |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "[mq]" >> $HGRCPATH echo "git=keep" >> $HGRCPATH echo % init hg init a cd a echo % commit echo 'base' > base hg ci -Ambase -d '1 0' echo % qnew mqbase hg qnew -mmqbase mqbase echo % qrefresh echo 'patched' > base hg qrefresh echo % qdiff hg qdiff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff dirname hg qdiff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" echo % qdiff filename hg qdiff --nodates base echo % revert hg revert -a echo % qpop hg qpop echo % qdelete mqbase hg qdelete mqbase echo % commit 2 printf '1\n2\n3\n4\nhello world\ngoodbye world\n7\n8\n9\n' > lines hg ci -Amlines -d '2 0' echo % qnew 2 hg qnew -mmqbase2 mqbase2 printf '\n\n1\n2\n3\n4\nhello world\n goodbye world\n7\n8\n9\n' > lines echo % qdiff -U 1 hg qdiff --nodates -U 1 echo % qdiff -b hg qdiff --nodates -b echo % qdiff -U 1 -B hg qdiff --nodates -U 1 -B echo % qdiff -w hg qdiff --nodates -w echo % qdiff --reverse hg qdiff --nodates --reverse echo % qdiff preserve existing git flag hg qrefresh --git echo a >> lines hg qdiff echo % qdiff --stat hg qdiff --stat