Mercurial > public > mercurial-scm > hg-stable
diff mercurial/patch.py @ 14385:7709cc983025
patch: git metadata was ignored if strip > 1
gitpatch objects emitted by iterhunks() are modified in place by applydiff().
Processing them earlier improves iterhunks() isolation. applydiff() modifying
them should still be fixed though.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 19 May 2011 22:44:01 +0200 |
parents | 9d59c596eb9e |
children | c2ef8cc50748 |
line wrap: on
line diff
--- a/mercurial/patch.py Thu May 19 22:44:01 2011 +0200 +++ b/mercurial/patch.py Thu May 19 22:44:01 2011 +0200 @@ -1158,14 +1158,12 @@ if not git: git = True gitpatches = scangitpatch(lr, x) - yield 'git', gitpatches for gp in gitpatches: changed[gp.path] = gp - # else error? + yield 'git', gitpatches # copy/rename + modify should modify target, not source - gp = changed.get(bfile) - if gp and (gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD') - or gp.mode): + gp = changed[bfile] + if gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD') or gp.mode: afile = bfile newfile = True elif x.startswith('---'):