Hi Cord
On 22/09/2022 15:11, Lindeke, Cord wrote:
What did you do before the bug happened? (Steps to reproduce your issue)
touch README.md
git diff-index --exit-code HEAD
:100644 100644 64c1efecd5716f56155b806caaf9fa6a771fae47 0000000000000000000000000000000000000000 M README.md
echo $?
1
git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
git diff-index --exit-code HEAD
echo $?
0
What did you expect to happen? (Expected behavior)
The first "git diff-index" should not detect any differences, but return 0 instead.
What happened instead? (Actual behavior)
The first "git diff-index" considers the touched README.md as dirty and returns 1.
Somehow, calling "git status" fixes this behaviour so that the second "git diff-index" behaves as expected.
What's different between what you expected and what actually happened?
The result of the first "git diff-index" should have been 0.
And the behaviour should not alter at all with calling any other git commands like "git status" or "git diff" in between.
It is working as expected. diff-files and diff-index are "plumbing"
commands designed for use in scripts and require the index to be
refreshed with "git update-index --refresh" before they are called. "git
diff" and "git status" are "porcelain" commands designed for users and
refresh the index as the first step.
Best Wishes
Phillip
Anything else you want to add:
The same issue holds true for "git diff-files".
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.37.3
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 4.15.0-193-generic #204-Ubuntu SMP Fri Aug 26 19:20:21 UTC 2022 x86_64
compiler info: gnuc: 7.5
libc info: glibc: 2.27
$SHELL (typically, interactive shell): /bin/bash
[Enabled Hooks]
Best regards
Cord Lindeke
Sr. Software Specialist
cord.lindeke@xxxxxxxxxxxxxx
Software AG, Uhlandstrasse 12, 64297 Darmstadt, Germany
Software AG – Sitz/Registered office: Uhlandstraße 12, 64297 Darmstadt, Germany – Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Sanjay Brahmawar (Vorsitzender/Chairman), Dr. Elke Frank, Dr. Matthias Heiden, Dr. Stefan Sigg, Dr. Benno Quade, Joshua Husk - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Christian Lucas - https://www.softwareag.com