Skip to content

Commit 7c6e61f

Browse files
jupedgitster
authored andcommitted
apply: only write intents to add for new files
In the "apply only to files" mode (i.e., neither --index nor --cached mode), the index should not be touched except to record intents to add when --intent-to-add is on. Because having --intent-to-add on sets update_index, to indicate that we may touch the index, we can't rely only on that flag in create_file() (which is called to write both new files and updated files) to decide whether to write an index entry; if we did, we would write an index entry for every file being patched (which would moreover be an intent-to-add entry despite not being a new file, because we are going to turn on the CE_INTENT_TO_ADD flag in add_index_entry() if we enter it here and ita_only is true). To decide whether to touch the index, we need to check the specific reason the index would be updated, rather than merely their aggregate in the update_index flag. Because we have already entered write_out_results() and are performing writes, we know that state->apply is true. If state->check_index is additionally true, we are in --index or --cached mode, which updates the index and should always write, whereas if we are merely in ita_only mode we must only write if the patch is a new file creation patch. Signed-off-by: Raymond E. Pasco <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 57391a9 commit 7c6e61f

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

apply.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4565,7 +4565,7 @@ static int create_file(struct apply_state *state, struct patch *patch)
45654565

45664566
if (patch->conflicted_threeway)
45674567
return add_conflicted_stages_file(state, patch);
4568-
else if (state->update_index)
4568+
else if (state->check_index || (state->ita_only && patch->is_new > 0))
45694569
return add_index_file(state, path, mode, buf, size);
45704570
return 0;
45714571
}

0 commit comments

Comments
 (0)