view tests/test-import-eol @ 11148:a912f26777d3

merge: introduce tool.check parameter tool.check is a list of check options, and can be used in place of tool.checkchanged and tool.checkconflicts: Equivalences: tool.checkchanged = yes tool.checkconflicts = no tool.check = changed tool.checkchanged = no tool.checkconflicts = yes tool.check = conflicts tool.checkchanged = yes tool.checkconflicts = yes tool.check = changed, conflicts Add _toollist() wrapper for ui.configlist() to implement this consistently. checkchanged and checkconflicts are still supported, but check is preferred for implementing new check options.
author David Champion <dgc@uchicago.edu>
date Mon, 10 May 2010 11:04:56 -0500
parents 7936cd261dc9
children
line wrap: on
line source

#!/bin/sh

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('-bbb\r\n')
w('+yyyy\r\n')
w(' cc\r\n')
w(' \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

hg init repo
cd repo
echo '\.diff' > .hgignore

# Test different --eol values
python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")'
hg ci -Am adda
python ../makepatch.py

echo % invalid eol
hg --config patch.eol='LFCR' import eol.diff
hg revert -a

echo % force LF
hg --traceback --config patch.eol='LF' import eol.diff
python -c 'print repr(file("a","rb").read())'
hg st

echo % force CRLF
hg up -C 0
hg --traceback --config patch.eol='CRLF' import eol.diff
python -c 'print repr(file("a","rb").read())'
hg st

echo % auto EOL on LF file
hg up -C 0
hg --traceback --config patch.eol='auto' import eol.diff
python -c 'print repr(file("a","rb").read())'
hg st

echo % auto EOL on CRLF file
python -c 'file("a", "wb").write("a\r\nbbb\r\ncc\r\n\r\nd\r\ne")'
hg commit -m 'switch EOLs in a'
hg --traceback --config patch.eol='auto' import eol.diff
python -c 'print repr(file("a","rb").read())'
hg st

echo % auto EOL on new file or source without any EOL
python -c 'file("noeol", "wb").write("noeol")'
hg add noeol
hg commit -m 'add noeol'
python -c 'file("noeol", "wb").write("noeol\r\nnoeol\n")'
python -c 'file("neweol", "wb").write("neweol\nneweol\r\n")'
hg add neweol
hg diff --git > noeol.diff
hg revert --no-backup noeol neweol
rm neweol
hg --traceback --config patch.eol='auto' import -m noeol noeol.diff
python -c 'print repr(file("noeol","rb").read())'
python -c 'print repr(file("neweol","rb").read())'
hg st

# Test --eol and binary patches
python -c 'file("b", "wb").write("a\x00\nb\r\nd")'
hg ci -Am addb
python -c 'file("b", "wb").write("a\x00\nc\r\nd")'
hg diff --git > bin.diff
hg revert --no-backup b
echo % binary patch with --eol
hg import --config patch.eol='CRLF' -m changeb bin.diff
python -c 'print repr(file("b","rb").read())'
hg st
cd ..