Wincent Colaiuta schrieb: > 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 git diff passes the output through your pager by default, so you see the exit code of that instead of diff's. Set PAGER=cat or redirect the output to /dev/null to get rid of it. A test case for diff would be nice regardless, though. :) René - 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