Mike Crowe <mac@xxxxxxxxxx> writes: > If "git diff --quiet" finds it necessary to compare actual file contents, > and a file requires CRLF conversion, then it incorrectly exits with an exit > code of 1 even if there have been no changes. > > The patch below adds a test file that shows the problem. If "git diff" does not show any output and "git diff --exit-code" or "git diff --quiet" says there are differences, then it is a bug. I would however have expected that any culprit would involve a code that says "under QUICK option, we do not have to bother doing this". The part you quoted: > if (!DIFF_FILE_VALID(p->one) || /* (1) */ > !DIFF_FILE_VALID(p->two) || > (p->one->oid_valid && p->two->oid_valid) || > (p->one->mode != p->two->mode) || > diff_populate_filespec(p->one, CHECK_SIZE_ONLY) || > diff_populate_filespec(p->two, CHECK_SIZE_ONLY) || > (p->one->size != p->two->size) || > !diff_filespec_is_identical(p->one, p->two)) /* (2) */ > p->skip_stat_unmatch_result = 1; is used by "git diff" with and without "--quiet", afacr, so I suspect that the bug lies somewhere else.