Mike Crowe <m...@mcrowe.com> 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.

Reply via email to