|
|
|
|
|
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
|
|
|
|