view tests/test-eol-clone @ 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 0bb67503ad4b
children
line wrap: on
line source

#!/bin/sh

cat > $HGRCPATH <<EOF
[diff]
git = True

[extensions]
eol =

[eol]
native = CRLF
EOF

echo "% setup repository"
hg init repo
cd repo

cat > .hgeol <<EOF
[patterns]
**.txt = native
EOF

printf "first\r\nsecond\r\nthird\r\n" > a.txt
hg commit --addremove -m 'checkin'
cd ..

echo "% hg clone repo repo-2"
hg clone repo repo-2
cd repo-2

echo '% printrepr.py a.txt'
python $TESTDIR/printrepr.py < a.txt
echo '% hg cat a.txt'
hg cat a.txt | python $TESTDIR/printrepr.py

hg remove .hgeol
hg commit -m 'remove eol'
hg push --quiet

cd ..

# Test clone of repo with .hgeol in working dir, but no .hgeol in tip
echo "% hg clone repo repo-3"
hg clone repo repo-3
cd repo-3

echo '% printrepr.py a.txt'
python $TESTDIR/printrepr.py < a.txt

cd ..

# Test clone of revision with .hgeol
echo "% hg clone -r 1 repo repo-4"
hg clone -r 0 repo repo-4
cd repo-4

echo '% cat .hgeol'
cat .hgeol

echo '% printrepr.py a.txt'
python $TESTDIR/printrepr.py < a.txt

cd ..