* git diff-index considers touched files as dirty and changes behaviour
@ 2022-09-22 14:11 Lindeke, Cord
2022-09-22 15:20 ` Phillip Wood
0 siblings, 1 reply; 2+ messages in thread
From: Lindeke, Cord @ 2022-09-22 14:11 UTC (permalink / raw)
To: git@vger.kernel.org
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.
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@softwareag.com
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: git diff-index considers touched files as dirty and changes behaviour
2022-09-22 14:11 git diff-index considers touched files as dirty and changes behaviour Lindeke, Cord
@ 2022-09-22 15:20 ` Phillip Wood
0 siblings, 0 replies; 2+ messages in thread
From: Phillip Wood @ 2022-09-22 15:20 UTC (permalink / raw)
To: Lindeke, Cord, git@vger.kernel.org
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@softwareag.com
> 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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-09-22 15:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-22 14:11 git diff-index considers touched files as dirty and changes behaviour Lindeke, Cord
2022-09-22 15:20 ` Phillip Wood
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).