diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-08-27 07:55:05 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-27 07:55:05 +0200 |
commit | a17483fcfe313e9ff5b9b0eb8245605fe7f66ea7 (patch) | |
tree | b90b9eaa13cdcf37d65b8dde1fd715603ece0118 /convert.c | |
parent | Merge branch 'jt/stash-tests' (diff) | |
parent | apply: file commited with CRLF should roundtrip diff and apply (diff) | |
download | git-a17483fcfe313e9ff5b9b0eb8245605fe7f66ea7.tar.xz git-a17483fcfe313e9ff5b9b0eb8245605fe7f66ea7.zip |
Merge branch 'tb/apply-with-crlf'
"git apply" that is used as a better "patch -p1" failed to apply a
taken from a file with CRLF line endings to a file with CRLF line
endings. The root cause was because it misused convert_to_git()
that tried to do "safe-crlf" processing by looking at the index
entry at the same path, which is a nonsense---in that mode, "apply"
is not working on the data in (or derived from) the index at all.
This has been fixed.
* tb/apply-with-crlf:
apply: file commited with CRLF should roundtrip diff and apply
convert: add SAFE_CRLF_KEEP_CRLF
Diffstat (limited to 'convert.c')
-rw-r--r-- | convert.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1132,10 +1132,12 @@ int convert_to_git(const struct index_state *istate, src = dst->buf; len = dst->len; } - ret |= crlf_to_git(istate, path, src, len, dst, ca.crlf_action, checksafe); - if (ret && dst) { - src = dst->buf; - len = dst->len; + if (checksafe != SAFE_CRLF_KEEP_CRLF) { + ret |= crlf_to_git(istate, path, src, len, dst, ca.crlf_action, checksafe); + if (ret && dst) { + src = dst->buf; + len = dst->len; + } } return ret | ident_to_git(path, src, len, dst, ca.ident); } |