tests/test-eol-clone
author Greg Ward <greg-hg@gerg.ca>
Tue, 15 Jun 2010 13:04:22 -0400
changeset 11402 367ce8514da0
parent 11249 0bb67503ad4b
permissions -rwxr-xr-x
extensions: recommend against using wrapfunction for repo methods Instead, all extensions should use the "dynamic subclass" trick: subclass repo.__class__ and then replace repo.__class__ with your new subclass. This avoids conflicts that happen when one extension uses wrapfunction and another uses subclassing to extend the same method of localrepository.

#!/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 ..