summaryrefslogtreecommitdiff
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
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>
-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;