From: Nathan Neulinger Date: Wed, 22 Nov 2017 16:20:43 GMT Subject: Re: git status always modifies index? Message-ID: In-Reply-To: <20171122161014.djkdygmclk227xmq@LykOS.localdomain> I just got an answer to my stackoverflow question on this, apparently it's already implemented: https://stackoverflow.com/questions/47436939/how-to-run-git-status-without-modifying-git-index-such-as-in-a-prompt-command There is a "--no-optional-locks" command in 2.15 that looks like it does exactly what I need. -- Nathan On 11/22/17 10:10 AM, Santiago Torres wrote: > On Wed, Nov 22, 2017 at 09:37:09AM -0600, Nathan Neulinger wrote: >> What I'm meaning is - why does it need to write the index back out to disk? >> >> From looking at the code in builtin/commit.c it looks like it takes a lock >> on the index, collects the status, and then unconditionally rewrites the >> index file. >> > Hmm, I just took a look at those lines and I see what you mean. From > what I understand, this is to cache the result of the index computation > for ensuing git calls. > >> I'm proposing that the update_index_if_able call not actually be issued if >> it would result in a ownership change on the underlying file - such as a >> simple case of root user or other privileged account issuing 'git status' in >> a directory. > > I don't think this would be a desire-able default behavior. I'd wager > that running git status using different accounts is not a great idea --- > specially interacting with a user repository as root. > >> I understand completely that it would be expected to be altered if the >> privileged user did a commit/add or any other operation that was inherently >> a 'write' operation, but doesn't seem like status should be one of those >> cases. > > I think it's because of the reasons above. That being said, I don't know > what the rest of the community would think of something akin to a > --no-update-index type flag. > > Cheers! > -Santiago. > -- ------------------------------------------------------------ Nathan Neulinger nneul@neulinger.org Neulinger Consulting (573) 612-1412