From: Phillip Wood Date: Thu, 22 Sep 2022 15:20:11 GMT Subject: Re: git diff-index considers touched files as dirty and changes behaviour Message-ID: <9501804c-4b34-0c46-b75c-5b2eb23386b3@dunelm.org.uk> In-Reply-To: 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