--- a/hgext/mq.py Thu Mar 18 16:32:03 2010 +0100
+++ b/hgext/mq.py Thu Mar 18 14:36:24 2010 -0700
@@ -88,13 +88,11 @@
for line in file(pf):
line = line.rstrip()
- if line.startswith('diff --git'):
+ if (line.startswith('diff --git')
+ or (diffstart and line.startswith('+++ '))):
diffstart = 2
break
- if diffstart:
- if line.startswith('+++ '):
- diffstart = 2
- break
+ diffstart = 0 # reset
if line.startswith("--- "):
diffstart = 1
continue
--- a/mercurial/hg.py Thu Mar 18 16:32:03 2010 +0100
+++ b/mercurial/hg.py Thu Mar 18 14:36:24 2010 -0700
@@ -209,6 +209,7 @@
src_repo = repository(ui, source)
else:
src_repo = source
+ branch = None
origsource = source = src_repo.url()
rev, checkout = addbranchrevs(src_repo, src_repo, branch, rev)
--- a/mercurial/patch.py Thu Mar 18 16:32:03 2010 +0100
+++ b/mercurial/patch.py Thu Mar 18 14:36:24 2010 -0700
@@ -178,7 +178,8 @@
# (this heuristic is borrowed from quilt)
diffre = re.compile(r'^(?:Index:[ \t]|diff[ \t]|RCS file: |'
r'retrieving revision [0-9]+(\.[0-9]+)*$|'
- r'(---|\*\*\*)[ \t])', re.MULTILINE)
+ r'(---|\*\*\*)[ \t].*?'
+ r'^(\+\+\+|\*\*\*)[ \t])', re.MULTILINE|re.DOTALL)
fd, tmpname = tempfile.mkstemp(prefix='hg-patch-')
tmpfp = os.fdopen(fd, 'w')
--- a/tests/test-import Thu Mar 18 16:32:03 2010 +0100
+++ b/tests/test-import Thu Mar 18 14:36:24 2010 -0700
@@ -375,6 +375,25 @@
hg parents -v
cd ..
+echo % '--- in commit message'
+hg init commitconfusion
+cd commitconfusion
+cat > a.patch <<EOF
+module: summary
+
+--- description
+
+diff --git a/a b/a
+new file mode 100644
+--- /dev/null
++++ b/a
+@@ -0,0 +1,1 @@
++a
+EOF
+hg import -d '0 0' a.patch
+hg parents -v
+cd ..
+
echo '% tricky header splitting'
cat > trickyheaders.patch <<EOF
From: User A <user@a>
--- a/tests/test-import.out Thu Mar 18 16:32:03 2010 +0100
+++ b/tests/test-import.out Thu Mar 18 14:36:24 2010 -0700
@@ -318,6 +318,17 @@
description
+% --- in commit message
+applying a.patch
+changeset: 0:f34d9187897d
+tag: tip
+user: test
+date: Thu Jan 01 00:00:00 1970 +0000
+files: a
+description:
+module: summary
+
+
% tricky header splitting
applying ../trickyheaders.patch
# HG changeset patch
--- a/tests/test-mq-qimport Thu Mar 18 16:32:03 2010 +0100
+++ b/tests/test-mq-qimport Thu Mar 18 14:36:24 2010 -0700
@@ -43,6 +43,7 @@
First line of commit message.
More text in commit message.
+--- confuse the diff detection
diff --git a/x b/x
new file mode 100644