Re: git status always modifies index?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx
Neulinger Consulting                   (573) 612-1412



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux