merge-recursive: Avoid working directory changes during recursive case
make_room_for_directories_of_df_conflicts() is about making sure necessary working directory changes can succeed. When o->call_depth > 0 (i.e. the recursive case), we do not want to make any working directory changes so this function should be skipped. Note that make_room_for_directories_of_df_conflicts() is broken as has been pointed out by Junio; it should NOT be unlinking files. What it should do is keep track of files that could be unlinked if a directory later needs to be written in their place. However, that work also is only relevant in the non-recursive case, so this change is helpful either way. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3d6b8e884c
commit
0b30e81251
@ -353,6 +353,13 @@ static void make_room_for_directories_of_df_conflicts(struct merge_options *o,
|
||||
int last_len = 0;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* If we're merging merge-bases, we don't want to bother with
|
||||
* any working directory changes.
|
||||
*/
|
||||
if (o->call_depth)
|
||||
return;
|
||||
|
||||
for (i = 0; i < entries->nr; i++) {
|
||||
const char *path = entries->items[i].string;
|
||||
int len = strlen(path);
|
||||
|
Loading…
Reference in New Issue
Block a user