Mercurial > hg-stable
changeset 16475:1f75c1decdeb stable
patch: be more tolerant with "Parent" header (issue3356)
Here is how export and mq write the "Parent" header:
mq: # Parent XXXXX
export: # Parent XXXXX
then import expects exactly 2 spaces while mq tolerates one or more. So "hg
import --exact" truncates mq generated patches header by one character and
fails. This patch aligns import "Parent" header parsing on mq one. I do not
expect spaces in parent references anytime soon.
Reported by Stefan Ring <stefanrin@gmail.com>
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Fri, 20 Apr 2012 19:11:54 +0200 |
parents | ee553e6cd8c4 |
children | 83622954b64d |
files | mercurial/patch.py tests/test-impexp-branch.t |
diffstat | 2 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/patch.py Thu Apr 19 17:08:12 2012 +0200 +++ b/mercurial/patch.py Fri Apr 20 19:11:54 2012 +0200 @@ -230,7 +230,7 @@ elif line.startswith("# Node ID "): nodeid = line[10:] elif line.startswith("# Parent "): - parents.append(line[10:]) + parents.append(line[9:].lstrip()) elif not line.startswith("# "): hgpatchheader = False elif line == '---' and gitsendmail:
--- a/tests/test-impexp-branch.t Thu Apr 19 17:08:12 2012 +0200 +++ b/tests/test-impexp-branch.t Fri Apr 20 19:11:54 2012 +0200 @@ -1,3 +1,6 @@ + $ echo '[extensions]' >> $HGRCPATH + $ echo 'mq =' >> $HGRCPATH + $ cat >findbranch.py <<EOF > import re, sys > @@ -55,3 +58,14 @@ applying ../r0.patch $ hg import --exact ../r1.patch applying ../r1.patch + +Test --exact and patch header separators (issue3356) + + $ hg strip --no-backup . + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + >>> import re + >>> p = file('../r1.patch', 'rb').read() + >>> p = re.sub(r'Parent\s+', 'Parent ', p) + >>> file('../r1-ws.patch', 'wb').write(p) + $ hg import --exact ../r1-ws.patch + applying ../r1-ws.patch