merge-recursive: avoid spurious rename/rename conflict from dir renames
[gitweb.git] / merge-recursive.c
index 03ff67bf8f2627ceae84bf8b83ab93de97f3a783..4a1ecdea03cb0e3c5cf0b9a524abdff47279a239 100644 (file)
@@ -1982,7 +1982,7 @@ static void compute_collisions(struct hashmap *collisions,
                char *new_path;
                struct diff_filepair *pair = pairs->queue[i];
 
-               if (pair->status == 'D')
+               if (pair->status != 'A' && pair->status != 'R')
                        continue;
                dir_rename_ent = check_dir_renamed(pair->two->path,
                                                   dir_renames);
@@ -2209,7 +2209,7 @@ static struct string_list *get_renames(struct merge_options *o,
                struct diff_filepair *pair = pairs->queue[i];
                char *new_path; /* non-NULL only with directory renames */
 
-               if (pair->status == 'D') {
+               if (pair->status != 'A' && pair->status != 'R') {
                        diff_free_filepair(pair);
                        continue;
                }