summaryrefslogtreecommitdiff
path: root/src/index.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.c')
-rw-r--r--src/index.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/index.c b/src/index.c
index bd65d924b..0422ff1d4 100644
--- a/src/index.c
+++ b/src/index.c
@@ -2670,7 +2670,8 @@ static int apply_each_file(const git_diff_delta *delta, float progress, void *pa
if (error < 0) /* actual error */
return error;
- if (delta->status == GIT_DELTA_DELETED)
+ /* If the workdir item does not exist, remove it from the index. */
+ if ((delta->new_file.flags & GIT_DIFF_FLAG_EXISTS) == 0)
error = git_index_remove_bypath(data->index, path);
else
error = git_index_add_bypath(data->index, delta->new_file.path);