Code

Merge branch 'lt/dirwalk' into next
[git.git] / apply.c
diff --git a/apply.c b/apply.c
index 5bd50733656eee24f59486553f5afaaac9a784bc..5341e309224b227f2fb430c448192cd7642348cf 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -1712,10 +1712,12 @@ static int check_patch(struct patch *patch)
        if (new_name && (patch->is_new | patch->is_rename | patch->is_copy)) {
                if (check_index && cache_name_pos(new_name, strlen(new_name)) >= 0)
                        return error("%s: already exists in index", new_name);
-               if (!cached && !lstat(new_name, &st))
-                       return error("%s: already exists in working directory", new_name);
-               if (errno != ENOENT)
-                       return error("%s: %s", new_name, strerror(errno));
+               if (!cached) {
+                       if (!lstat(new_name, &st))
+                               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) {
                        if (patch->is_new)
                                patch->new_mode = S_IFREG | 0644;