--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-mq-eol.t Sun Aug 15 21:45:31 2010 +0900
@@ -0,0 +1,141 @@
+
+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
+ adding .hgignore
+ adding a
+ $ python ../makepatch.py
+ $ hg qimport eol.diff
+ adding eol.diff to series file
+
+should fail in strict mode
+
+ $ hg qpush
+ applying eol.diff
+ patching file a
+ Hunk #1 FAILED at 0
+ 1 out of 1 hunks FAILED -- saving rejects to file a.rej
+ patch failed, unable to continue (try -v)
+ patch failed, rejects left in working dir
+ errors during apply, please fix and refresh eol.diff
+ $ hg qpop
+ popping eol.diff
+ patch queue now empty
+
+invalid eol
+
+ $ hg --config patch.eol='LFCR' qpush
+ applying eol.diff
+ patch failed, unable to continue (try -v)
+ patch failed, rejects left in working dir
+ errors during apply, please fix and refresh eol.diff
+ $ hg qpop
+ popping eol.diff
+ patch queue now empty
+
+force LF
+
+ $ hg --config patch.eol='CRLF' qpush
+ applying eol.diff
+ now at: eol.diff
+ $ hg qrefresh
+ $ python ../cateol.py .hg/patches/eol.diff
+ test message<LF>
+ <LF>
+ diff -r 0d0bf99a8b7a a<LF>
+ --- a/a<LF>
+ +++ b/a<LF>
+ @@ -1,5 +1,5 @@<LF>
+ -a<LF>
+ -b<LF>
+ -c<LF>
+ -d<LF>
+ -e<LF>
+ \ No newline at end of file<LF>
+ +a<CR><LF>
+ +y<CR><LF>
+ +c<CR><LF>
+ +d<CR><LF>
+ +z<LF>
+ \ No newline at end of file<LF>
+ $ python ../cateol.py a
+ a<CR><LF>
+ y<CR><LF>
+ c<CR><LF>
+ d<CR><LF>
+ z
+ $ hg qpop
+ popping eol.diff
+ patch queue now empty
+
+push again forcing LF and compare revisions
+
+ $ hg --config patch.eol='CRLF' qpush
+ applying eol.diff
+ now at: eol.diff
+ $ python ../cateol.py a
+ a<CR><LF>
+ y<CR><LF>
+ c<CR><LF>
+ d<CR><LF>
+ z
+ $ hg qpop
+ popping eol.diff
+ patch queue now empty
+
+push again without LF and compare revisions
+
+ $ hg qpush
+ applying eol.diff
+ now at: eol.diff
+ $ python ../cateol.py a
+ a<CR><LF>
+ y<CR><LF>
+ c<CR><LF>
+ d<CR><LF>
+ z
+ $ hg qpop
+ popping eol.diff
+ patch queue now empty