summaryrefslogtreecommitdiff
path: root/src/diff.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/diff.c')
-rw-r--r--src/diff.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/diff.c b/src/diff.c
index 64641daab..26c0b895b 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1083,17 +1083,13 @@ static int handle_unmatched_new_item(
if (recurse_into_dir) {
error = iterator_advance_into(&info->nitem, info->new_iter);
- /* if real error or no error, proceed with iteration */
- if (error != GIT_ENOTFOUND)
- return error;
- giterr_clear();
+ /* if directory is empty, can't advance into it, so skip it */
+ if (error == GIT_ENOTFOUND) {
+ giterr_clear();
+ error = iterator_advance(&info->nitem, info->new_iter);
+ }
- /* if directory is empty, can't advance into it, so either skip
- * it or ignore it
- */
- if (error == GIT_ENOTFOUND || contains_oitem)
- return iterator_advance(&info->nitem, info->new_iter);
- delta_type = GIT_DELTA_IGNORED;
+ return error;
}
}