##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r10130:7936cd26 default
r10521:bde1bb25 stable
Show More
test-import-eol
85 lines | 2.1 KiB | text/plain | TextLexer
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 #!/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')
Colin Caughie
Fixed patch.eol bug that truncated all patched lines to one character...
r8817 w('-bbb\r\n')
w('+yyyy\r\n')
w(' cc\r\n')
w(' \n')
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 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
Colin Caughie
Fixed patch.eol bug that truncated all patched lines to one character...
r8817 python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")'
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 hg ci -Am adda
python ../makepatch.py
Martin Geisler
patch: implement patch.eol=auto mode...
r10102
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 echo % invalid eol
hg --config patch.eol='LFCR' import eol.diff
hg revert -a
Martin Geisler
patch: implement patch.eol=auto mode...
r10102
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 echo % force LF
hg --traceback --config patch.eol='LF' import eol.diff
python -c 'print repr(file("a","rb").read())'
hg st
Martin Geisler
patch: implement patch.eol=auto mode...
r10102
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 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
Martin Geisler
patch: implement patch.eol=auto mode...
r10102 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
Patrick Mezard
patch: fix eolmode=auto with new files...
r10127 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
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 # Test --eol and binary patches
Patrick Mezard
test-import-eol: improve binary hunks test
r10130 python -c 'file("b", "wb").write("a\x00\nb\r\nd")'
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 hg ci -Am addb
Patrick Mezard
test-import-eol: improve binary hunks test
r10130 python -c 'file("b", "wb").write("a\x00\nc\r\nd")'
Patrick Mezard
Add patch.eol to ignore EOLs when patching (issue1019)...
r8810 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 ..