Thread (7 messages) flat view 7 messages, 4 authors, 2018-08-06

exit code in git diff-index [was: Re: concurrent access to multiple local git repos is error prone]

From: Thomas Gummerer <hidden>
Date: 2018-08-05 19:34:12

On 08/05, Alexander Mills wrote:
Also, as an aside, this seems to be a bug, but probably a known bug:

$ git diff-index  HEAD; echo $?

:100755 100755 60e5d683c1eb3e61381b1a8ec2db822b94b9faec
0000000000000000000000000000000000000000 M      cli/npp_check_merge.sh
:100644 100644 35a453544de41e2227ab0afab31a396d299139e9
0000000000000000000000000000000000000000 M      src/find-projects.ts
:100644 100644 c1ee7bc18e6604cbf0d16653e9366109d6ac2ec9
0000000000000000000000000000000000000000 M      src/tables.ts
:100644 100644 29d9674fbb48f223f3434179d666b2aa991ad05a
0000000000000000000000000000000000000000 M
src/vcs-helpers/git-helpers.ts
0

$ git diff-index --quiet HEAD; echo $?
1

different exit codes depending on whether --quiet was used. In this
case, the exit code should be consistent.
The bug is with the `git diff-index` command, as you can see.
This is not a bug. 'git diff-index' (and 'git diff') only give an exit
code other than 0 in the default case if something actually goes wrong
with generating the diff, which in the usual case it shouldn't.

To get an exit code from 'git diff-index' if there are differences,
you'd have to pass the '--exit-code' flag.  The '--quite' flag implies
'--exit-code', as there's not much use in 'git diff --quiet' if
there's not even an exit code showing whether there are differences or
not.

The original patch (and more importantly the reasoning why
'--exit-code' is not the default behaviour for 'git diff') can be
found at [1].

[1]: https://public-inbox.org/git/81b0412b0703131717k7106ee1cg964628f0bda2c83e@mail.gmail.com/
-alex
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help