From: Ian Turner Date: Mon, 23 Sep 2024 16:29:06 GMT Subject: Bug report: Undocumented interaction of --exit-code and --ignore-space-change for file move Message-ID: Hi all, I noticed that there an undocumented interaction of the --exit-code and --ignore-space-change flags to git diff, when the diff only contains file moves. Specifically, --ignore-space-change will cause git diff to return a zero exit code in this situation. I am not sure if the problem is with the command behavior, or with the documentation. STEPS TO REPRODUCE: git init echo foo > a.txt git add a.txt git commit -m "A" git mv a.txt b.txt git commit -m "B" git diff --exit-code HEAD~1..HEAD # returns exit code 1 git diff --exit-code --ignore-space-change HEAD~1..HEAD # returns exit status 0 EXPECTED BEHAVIOR: Both of the last two commands above should return nonzero exit status. WORKAROUND: As one might expect --no-renames undoes this behavior, although it also changes the diff output if not using --quiet: git diff --exit-code --ignore-space-change --no-renames HEAD~1..HEAD # returns exit status 1 OTHER INFO: Tested this on git 2.39.2 and git 2.41.0, both on Linux. Regards, Ian Turner