changeset 3055:efd26ceedafb

Fix git patch application when cwd != repo.root
author Brendan Cully <brendan@kublai.com>
date Wed, 30 Aug 2006 13:12:26 -0700
parents 51b7f792e473
children 6848528f7ebd
files mercurial/patch.py
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/patch.py	Wed Aug 30 12:55:10 2006 -0700
+++ b/mercurial/patch.py	Wed Aug 30 13:12:26 2006 -0700
@@ -182,7 +182,7 @@
 
     return (dopatch, gitpatches)
 
-def dogitpatch(patchname, gitpatches):
+def dogitpatch(patchname, gitpatches, cwd=None):
     """Preprocess git patch so that vanilla patch can handle it"""
     pf = file(patchname)
     pfline = 1
@@ -196,7 +196,7 @@
             if not p.copymod:
                 continue
 
-            copyfile(p.oldpath, p.path)
+            copyfile(p.oldpath, p.path, basedir=cwd)
 
             # rewrite patch hunk
             while pfline < p.lineno:
@@ -233,7 +233,7 @@
     fuzz = False
     if dopatch:
         if dopatch == 'filter':
-            patchname = dogitpatch(patchname, gitpatches)
+            patchname = dogitpatch(patchname, gitpatches, cwd=cwd)
         patcher = util.find_in_path('gpatch', os.environ.get('PATH', ''), 'patch')
         args = []
         if cwd: