changeset 6027:cee68264ed92

mq: qimport must read patches in binary mode
author Patrick Mezard <pmezard@gmail.com>
date Wed, 06 Feb 2008 23:09:13 +0100
parents b70a530bdb93
children 6605a03cbf87 36a60bd5b707
files hgext/mq.py tests/test-mq-qimport tests/test-mq-qimport.out
diffstat 3 files changed, 44 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/mq.py	Tue Feb 05 15:54:42 2008 +0100
+++ b/hgext/mq.py	Wed Feb 06 23:09:13 2008 +0100
@@ -1414,7 +1414,7 @@
                             raise util.Abort(_('need --name to import a patch from -'))
                         text = sys.stdin.read()
                     else:
-                        text = file(filename).read()
+                        text = file(filename, 'rb').read()
                 except IOError:
                     raise util.Abort(_("unable to read %s") % patchname)
                 if not patchname:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-mq-qimport	Wed Feb 06 23:09:13 2008 +0100
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+cat > writelines.py <<EOF
+import sys
+path = sys.argv[1]
+args = sys.argv[2:]
+assert (len(args) % 2) == 0
+
+f = file(path, 'wb')
+for i in xrange(len(args)/2):
+   count, s = args[2*i:2*i+2]
+   count = int(count)
+   s = s.decode('string_escape')
+   f.write(s*count)
+f.close()
+
+EOF
+
+echo "[extensions]" >> $HGRCPATH
+echo "mq=" >> $HGRCPATH
+echo "[diff]" >> $HGRCPATH
+echo "git=1" >> $HGRCPATH
+
+echo % build diff with CRLF
+hg init repo
+cd repo
+python ../writelines.py b 5 'a\n' 5 'a\r\n'
+hg ci -Am addb
+python ../writelines.py b 2 'a\n' 10 'b\n' 2 'a\r\n'
+hg diff > b.diff
+hg up -C
+echo % qimport CRLF diff
+hg qimport b.diff
+hg qpush
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-mq-qimport.out	Wed Feb 06 23:09:13 2008 +0100
@@ -0,0 +1,7 @@
+% build diff with CRLF
+adding b
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+% qimport CRLF diff
+adding b.diff to series file
+applying b.diff
+Now at: b.diff