Re: "git diff --no-index" Implies "--exit-code"
From: Denton Liu <hidden>
Date: 2019-11-27 08:46:05
Hi John, On Wed, Nov 27, 2019 at 04:03:48AM +0000, John Ferreira wrote:
I suspect this may be a bug: Because I am not specifying the "--exit-code" flag, I expect "git diff --no-index" to have the same exit code style as git diff. But it does not. See comment in source linked below. Or, if this is intended, this side effect should be noted in the documentation for --no-index. https://git-scm.com/docs/git-diff --exit-code Make the program exit with codes similar to diff(1). That is, it exits with 1 if there were differences and 0 means no differences. git diff [<options>] --no-index [--] <path> <path> This form is to compare the given two paths on the filesystem. You can omit the --no-index option when running the command in a working tree controlled by Git and at least one of the paths points outside the working tree, or when running the command outside a working tree controlled by Git. https://github.com/git/git/blob/83232e38648b51abbcbdb56c94632b6906cc85a6/diff-no-index.c#L307 /* * The return code for --no-index imitates diff(1): * 0 = no changes, 1 = changes, else error */
This is a documentation bug. It's already a known issue and there's a fix for it already queued up in next[1]. Thanks, Denton [1]: https://github.com/gitster/git/commit/0115e5d929d06ad41eff83742a3e6a1e91ecc0c4