Merge with stable
authorBrendan Cully <brendan@kublai.com>
Thu, 18 Mar 2010 14:36:24 -0700
changeset 10731 71cf11f03b3d
parent 10727 62b8f15683f2 (current diff)
parent 10730 4d6bd7b8b6d8 (diff)
child 10734 7a0502a6f9a1
Merge with stable
hgext/mq.py
mercurial/hg.py
mercurial/patch.py
--- 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