On 08/01/2017 10:58 PM, Anthony Sottile wrote:
Here's where I'm hitting the problem described:
https://github.com/pre-commit/pre-commit/issues/570
Note that `git -c core.autocrlf=false` apply patch fixes this
situation, but breaks others.
[]
I wasn't thinking of that - and thanks for the detailed report.
I seems as there are 3 things to be done:
- Make a workaround in your scripts/tools. It seems as if that is
already done.
- Fix Git.
My very first investigation shows that a patch like this could fix
the problem:
diff --git a/apply.c b/apply.c
index f2d599141d..66b8387360 100644
--- a/apply.c
+++ b/apply.c
@@ -2278,6 +2278,8 @@ 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);
+ if (would_convert_to_git(&the_index, path))
+ read_cache();
convert_to_git(&the_index, path, buf->buf, buf->len,
buf, 0);
return 0;
default:
----------------
I will probably do some more investigations if this is the core
problem, so it will take some days or weeks.
- Convince people to normalize their repos and convert all CRLF in the
repo into LF.
This may take even longer.