On Wed, Nov 22, 2017 at 12:27:20PM -0800, Jonathan Nieder wrote: > Nathan Neulinger wrote[1]: > > > 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. > > I was about to point to > https://public-inbox.org/git/20170921043214.pyhdsrpy4omy54rm@xxxxxxxxxxxxxxxxxxxxx/ > about exactly this thing. :) > > That said, I wonder if this use case is an illustration that a name > like --no-lock-index (as was used in Git for Windows when this feature > first appeared) or --no-refresh-on-disk-index (sorry, I am terrible at > coming up with option names) would make the feature easier to > discover. Yeah, it's interesting that Nathan does not care about the simultaneous locking here, but rather about the effect of writing to the repo for what would otherwise be a read-only operation. Under the original intent of --no-optional-locks I think if we could somehow magically update the on-disk index without lock contention, it would be OK to do so. But that would make it no longer work for this particular case. And I would also not be surprised if there are other cases where we write in a lockless way that would best be avoided in a multi-user setup. I'm thinking specifically of the way that some merge-y operations may write out intermediate objects, even though they're only needed inside the process. It _should_ be a read-only operation to ask "can these two things be merged cleanly", and you should be able to ask that without accidentally creating root-owned files in .git/objects. So I actually think what Nathan wants is not exactly the same as --no-optional-locks in the first place. But in practice, for a limited set of operations and with the way that locks work in Git, it accomplishes the same thing. Maybe that points to having a broader option. Or maybe having two separate options that largely have the same effect. Or maybe just living with the minor philosophical rough edges, since it seems OK in practice. -Peff