The git-diff man page documents an "--exit-code" option, as well as a "--quiet" option which automatically implies the former. In my tests on Mac OS X and Bash 3, however, "git diff" always return an exit code of 0, never of 1, regardless of how I use the "--quiet" and "--exit-code" options. I see that there are tests in t/t4017-quiet.sh for the lower-level git-diff-files, git-diff-index, git-diff-tree commands, but none for the porcelain git-diff. Is this a bug with a missing test case? Or am I using this incorrectly? In the example below I'm looking for differences between the working tree and the last commit, so I'm using "git diff HEAD", but as you can see, the exit code is always 0 for "git diff" and "git diff --cached" as well: $ git --version git version 1.5.2.4 $ mkdir example $ cd example $ git init Initialized empty Git repository in .git/ $ echo "start" > foo $ git add foo $ git commit -m "Add foo" Created initial commit 85954f6: Add foo 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 foo $ git diff --quiet HEAD; echo $? 0 $ echo "more" >> foo $ git diff --quiet HEAD; echo $? 0 $ git add foo $ git diff --quiet HEAD; echo $? 0 $ git diff --quiet; echo $? 0 $ git diff --exit-code; echo $? 0 $ git diff --cached --quiet; echo $? 0 Cheers, Wincent - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html