summaryrefslogtreecommitdiff
path: root/apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-08-16 11:01:16 -0700
committerJunio C Hamano <gitster@pobox.com>2017-08-16 11:01:16 -0700
commit93b396c266e91cbbfdd6338489cab385db799aa8 (patch)
treed2ac11462217fb8b6cd1e5ae60e84a4d27c9d9a4 /apply.c
parentbbad4e5c75a3f145c75ac9f25375013da8065e27 (diff)
downloadgit-jc/apply-with-crlf.tar.gz
apply: clarify read_old_data() is about no-index casejc/apply-with-crlf
With the previous fixes to CRLF handling in place, read_old_data() knows what it wants convert_to_git() to do with respect to CRLF. In fact, this codepath is about applying a patch to a file in the filesystem, which may not exist in the index, or may exist but may not match what is recorded in the index, or in the extreme case, we may not even be in a Git repository. If convert_to_git() peeked at the index while doing its work, it *would* be a bug. Pass NULL instead of &the_index to the function to make sure we catch future bugs to clarify this. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'apply.c')
-rw-r--r--apply.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/apply.c b/apply.c
index c06f7014a2..ad58cd1c77 100644
--- a/apply.c
+++ b/apply.c
@@ -2301,7 +2301,15 @@ static int read_old_data(struct stat *st, const char *path, struct strbuf *buf,
case S_IFREG:
if (strbuf_read_file(buf, path, st->st_size) != st->st_size)
return error(_("unable to open or read %s"), path);
- convert_to_git(&the_index, path, buf->buf, buf->len, buf, safe_crlf);
+ /*
+ * "git apply" without "--index/--cached" should never look
+ * at the index; the target file may not have been added to
+ * the index yet, and we may not even be in any Git repository.
+ * Pass NULL to convert_to_git() to stress this; the function
+ * should never look at the index when explicit crlf option
+ * is given.
+ */
+ convert_to_git(NULL, path, buf->buf, buf->len, buf, safe_crlf);
return 0;
default:
return -1;