Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue.
What did you do before the bug happened? (Steps to reproduce your issue)
$ mkdir /tmp/git-diff-test; cd /tmp/git-diff-test $ git init Initialized empty Git repository in /tmp/git-diff-test/.git/ $ touch foo $ git add foo $ git commit -m "foo" [main (root-commit) f60d7bc] foo 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo $ mv foo bar $ git status -s D foo ?? bar $ git add foo bar $ git status -s R foo -> bar $ git diff --quiet --cached; echo $? 0 $ git diff --quiet --cached --no-renames; echo $? 1
What did you expect to happen? (Expected behavior)
Versions prior to commit d7b97b7185521e3b9364b3abc6553df2480da173 returned 1 for `git diff --quiet --cached`.
What happened instead? (Actual behavior)
It returned 0.
What's different between what you expected and what actually happened?
The status code.
Anything else you want to add:
This bug report originates from a PR I filed with Magit here:
https://github.com/magit/magit/pull/5221
I thought this difference between using `--no-renames` and not made sense, so I thought the problem lied with Magit. However, like tarsius in that thread points out, this is a change that happened recently with git and it's not in the release notes. After finding the commit that introduces the change, I see the message mentions "The new options are off by default, keeping the old behavior." It really doesn't seem intentional, so here's a bug report.
Also, the above difference with --no-renames also happens if I move my ~/.gitconfig elsewhere, so there's no use of external diff tools. I verified that with strace, too.
Please review the rest of the bug report below. You can delete any lines you don't wish to share.
[System Info] git version: git version 2.46.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh libcurl: 8.9.0 OpenSSL: OpenSSL 3.3.1 4 Jun 2024 zlib: 1.3.1 uname: Linux 6.10.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 19 Aug 2024 17:02:39 +0000 x86_64 compiler info: gnuc: 14.1 libc info: glibc: 2.40 $SHELL (typically, interactive shell): /usr/bin/zsh
[Enabled Hooks]
-- Jorge Luis Martinez Gomez jol@jol.dev