1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/bin/sh
# Test interactions between mq and patch.eol
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "[diff]" >> $HGRCPATH
echo "nodates=1" >> $HGRCPATH
cat > makepatch.py <<EOF
f = file('eol.diff', 'wb')
w = f.write
w('test message\n')
w('diff --git a/a b/a\n')
w('--- a/a\n')
w('+++ b/a\n')
w('@@ -1,5 +1,5 @@\n')
w(' a\n')
w('-b\r\n')
w('+y\r\n')
w(' c\r\n')
w(' d\n')
w('-e\n')
w('\ No newline at end of file\n')
w('+z\r\n')
w('\ No newline at end of file\r\n')
EOF
cat > cateol.py <<EOF
import sys
for line in file(sys.argv[1], 'rb'):
line = line.replace('\r', '<CR>')
line = line.replace('\n', '<LF>')
print line
EOF
hg init repo
cd repo
echo '\.diff' > .hgignore
echo '\.rej' >> .hgignore
# Test different --eol values
python -c 'file("a", "wb").write("a\nb\nc\nd\ne")'
hg ci -Am adda
python ../makepatch.py
hg qimport eol.diff
echo % should fail in strict mode
hg qpush
hg qpop
echo % invalid eol
hg --config patch.eol='LFCR' qpush
hg qpop
echo % force LF
hg --config patch.eol='CRLF' qpush
hg qrefresh
python ../cateol.py .hg/patches/eol.diff
python ../cateol.py a
hg qpop
echo % push again forcing LF and compare revisions
hg --config patch.eol='CRLF' qpush
python ../cateol.py a
hg qpop
echo % push again without LF and compare revisions
hg qpush
python ../cateol.py a
hg qpop
|