Mercurial > hg
view tests/test-clone-failure @ 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 | 567648eab1dd |
children |
line wrap: on
line source
#!/bin/sh # No local source hg clone a b echo $? # No remote source hg clone http://127.0.0.1:3121/a b echo $? rm -rf b # work around bug with http clone # Inaccessible source mkdir a chmod 000 a hg clone a b echo $? # Inaccessible destination mkdir b cd b hg init hg clone . ../a echo $? cd .. chmod 700 a rm -r a b # Source of wrong type if "$TESTDIR/hghave" -q fifo; then mkfifo a hg clone a b echo $? rm a else echo "abort: repository a not found!" echo 255 fi # Default destination, same directory mkdir q cd q hg init cd .. hg clone q # destination directory not empty mkdir a echo stuff > a/a hg clone q a echo $? # leave existing directory in place after clone failure hg init c cd c echo c > c hg commit -A -m test chmod -rx .hg/store/data cd .. mkdir d hg clone c d 2> err echo $? test -d d && echo "dir is still here" || echo "dir is gone" test -d d/.hg && echo "repo is still here" || echo "repo is gone" # reenable perm to allow deletion chmod +rx c/.hg/store/data true