Make rebase script saner.
[gitweb.git] / apply.c
diff --git a/apply.c b/apply.c
index 81607c0fb6f39a0fb177a16b5f8c7353e97936aa..7c1a8411f21ee42d095e6c5a515987ef2a6f779a 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -1043,8 +1043,12 @@ static int check_patch(struct patch *patch)
                        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) {