On Sun, Sep 24, 2017 at 01:08:41PM +0530, Kaartic Sivaraam wrote: > On Thursday 21 September 2017 10:02 AM, Jeff King wrote: > > Some tools like IDEs or fancy editors may periodically run > > commands like "git status" in the background to keep track > > of the state of the repository. > > I might be missing something, shouldn't the IDEs be encouraged to use > libgit2 instead? I thought it was meant for these use cases. GitHub Desktop, at least, has actually moved _away_ from libgit2. I think there were a number of reasons. Some match what Dscho said regarding Visual Studio. But I think a main one is just that libgit2 doesn't quite match regular git for feature parity or pace of development. So you're stuck shelling out to regular Git half the time anyway, and now you get to handle dependencies on _two_ systems. :) > Note: I assume getting the status through libgit2 doesn't create an > index.lock file. I don't know if that's the case or not. > > This patch implements the option 3. > > So, if I get that correctly "git status --no-optional-locks" is a way to get > the "current" status without updating the on disk index file? It's actually "git --no-optional-locks status", since it's a git-wide option (it's just that "status" is the only one who respects it for now). > > +`GIT_OPTIONAL_LOCKS`:: > > + If set to `0`, Git will avoid performing any operations which > > + require taking a lock and which are not required to complete the > > + requested operation. > > The above sentence seems to be a little confusing. How about, > > If set to `0`, Git will complete the requested operation without > performing the optional sub-operations that require taking a lock. Yeah, my original is pretty clunky. I ended up with: If set to `0`, Git will complete any requested operation without performing any optional sub-operations that require taking a lock. which swaps out "the" for "any". Thanks. -Peff