Fix issue1495, corner case of adding empty files via patching
authorVsevolod Solovyov <vsevolod.solovyov@gmail.com>
Tue, 24 Mar 2009 23:28:55 +0000
changeset 7971 6ea0318daf75
parent 7970 fd22d7c7b302
child 7972 425a30ddfff6
child 8104 fd7cc930ab8f
Fix issue1495, corner case of adding empty files via patching
mercurial/patch.py
tests/test-import
tests/test-import.out
--- 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