##// END OF EJS Templates
bookmarks: use 'applychanges' for bookmark update...
bookmarks: use 'applychanges' for bookmark update There is still some use of 'deletedivergent' bookmark here. They will be taken care of later. The 'deletedivergent' code needs some rework before fitting in the new world.

File last commit:

r32940:75be1499 default
r33491:1adcb594 default
Show More
test-import-eol.t
146 lines | 2.7 KiB | text/troff | Tads3Lexer
$ 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
adding .hgignore
adding a
$ $PYTHON ../makepatch.py
invalid eol
$ hg --config patch.eol='LFCR' import eol.diff
applying eol.diff
abort: unsupported line endings type: LFCR
[255]
$ hg revert -a
force LF
$ hg --traceback --config patch.eol='LF' import eol.diff
applying eol.diff
$ cat a
a
yyyy
cc
d
e (no-eol)
$ hg st
force CRLF
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='CRLF' import eol.diff
applying eol.diff
$ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
$ hg st
auto EOL on LF file
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg --traceback --config patch.eol='auto' import eol.diff
applying eol.diff
$ cat a
a
yyyy
cc
d
e (no-eol)
$ hg st
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
applying eol.diff
$ cat a
a\r (esc)
yyyy\r (esc)
cc\r (esc)
\r (esc)
d\r (esc)
e (no-eol)
$ hg st
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
applying noeol.diff
$ cat noeol
noeol\r (esc)
noeol
$ cat neweol
neweol
neweol\r (esc)
$ hg st
Test --eol and binary patches
$ $PYTHON -c 'file("b", "wb").write("a\x00\nb\r\nd")'
$ hg ci -Am addb
adding b
$ $PYTHON -c 'file("b", "wb").write("a\x00\nc\r\nd")'
$ hg diff --git > bin.diff
$ hg revert --no-backup b
binary patch with --eol
$ hg import --config patch.eol='CRLF' -m changeb bin.diff
applying bin.diff
$ cat b
a\x00 (esc)
c\r (esc)
d (no-eol)
$ hg st
$ cd ..