diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -178,7 +178,8 @@ def extract(ui, fileobj): # (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') diff --git a/tests/test-import b/tests/test-import --- a/tests/test-import +++ b/tests/test-import @@ -375,6 +375,25 @@ hg import -d '0 0' a.patch hg parents -v cd .. +echo % '--- in commit message' +hg init commitconfusion +cd commitconfusion +cat > a.patch < trickyheaders.patch < diff --git a/tests/test-import.out b/tests/test-import.out --- a/tests/test-import.out +++ b/tests/test-import.out @@ -318,6 +318,17 @@ module: summary 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