diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-08-16 11:01:16 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-16 11:01:16 -0700 |
commit | 93b396c266e91cbbfdd6338489cab385db799aa8 (patch) | |
tree | d2ac11462217fb8b6cd1e5ae60e84a4d27c9d9a4 | |
parent | bbad4e5c75a3f145c75ac9f25375013da8065e27 (diff) | |
download | git-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.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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; |