Re: git status always modifies index?
- From
Santiago Torres <santiago@nyu.edu>
- Date
- Nov 22, 2017, 16:10 UTC
- Message-ID
- <20171122161014.djkdygmclk227xmq@LykOS.localdomain>
- In-Reply-To
- <5050d779-2981-6f06-49f7-0ecb4efb25b8@neulinger.org>
On Wed, Nov 22, 2017 at 09:37:09AM -0600, Nathan Neulinger wrote:
Show 6 quoted lines
> 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.