[PATCH] When copying or renaming, keep the mode, please

Without this patch, git-apply does not retain the mode when renaming or
copying files.

[jc: Good catch, Johannes.  I added a test case to demonstrate the
breackage in the original.]

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/apply.c b/apply.c
index 81607c0..7c1a841 100644
--- a/apply.c
+++ b/apply.c
@@ -1043,8 +1043,12 @@
 			return error("%s: already exists in working directory", new_name);
 		if (errno != ENOENT)
 			return error("%s: %s", new_name, strerror(errno));
-		if (!patch->new_mode)
-			patch->new_mode = S_IFREG | 0644;
+		if (!patch->new_mode) {
+			if (patch->is_new)
+				patch->new_mode = S_IFREG | 0644;
+			else
+				patch->new_mode = patch->old_mode;
+		}
 	}
 
 	if (new_name && old_name) {