changeset 7971:6ea0318daf75

Fix issue1495, corner case of adding empty files via patching
author Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
date Tue, 24 Mar 2009 23:28:55 +0000
parents fd22d7c7b302
children 425a30ddfff6 fd7cc930ab8f
files mercurial/patch.py tests/test-import tests/test-import.out
diffstat 3 files changed, 23 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/patch.py	Fri Apr 03 11:50:42 2009 -0500
+++ b/mercurial/patch.py	Tue Mar 24 23:28:55 2009 +0000
@@ -910,7 +910,7 @@
                 # else error?
                 # copy/rename + modify should modify target, not source
                 gp = changed.get(bfile)
-                if gp and gp.op in ('COPY', 'DELETE', 'RENAME'):
+                if gp and gp.op in ('COPY', 'DELETE', 'RENAME', 'ADD'):
                     afile = bfile
                     gitworkdone = True
             newfile = True
--- a/tests/test-import	Fri Apr 03 11:50:42 2009 -0500
+++ b/tests/test-import	Tue Mar 24 23:28:55 2009 +0000
@@ -313,3 +313,22 @@
 hg import --no-commit -v -s 100 ../rename.diff
 hg st -C
 cd ..
+
+
+echo '% add empty file from the end of patch (issue 1495)'
+hg init addemptyend
+cd addemptyend
+touch a
+hg addremove
+hg ci -m "commit"
+cat > a.patch <<EOF
+diff --git a/a b/a
+--- a/a
++++ b/a
+@@ -0,0 +1,1 @@
++a
+diff --git a/b b/b
+new file mode 100644
+EOF
+hg import --no-commit a.patch
+cd ..
--- a/tests/test-import.out	Fri Apr 03 11:50:42 2009 -0500
+++ b/tests/test-import.out	Tue Mar 24 23:28:55 2009 +0000
@@ -293,3 +293,6 @@
 adding b
 A b
 R a
+% add empty file from the end of patch (issue 1495)
+adding a
+applying a.patch