Salta al contenuto principale


git status Side Effects


Posted on February 17, 2023
TIL, from a conversation with friends1, that git status can indeed have side effects, of some sort.

By default, running git status causes a background refresh of the index to happen, which holds the write lock on the repository.

In theory, if somebody is really unlucky, this could break some script / process that is also trying to work on the repo at the same time, especially on a huge repository where git status takes a significant time, rather than the usual fraction of a second2.

There is a way to prevent this, by running git status --no-optional-locks (git-scm.com/docs/git#Documenta…) or by setting GIT_OPTIONAL_LOCKS to 0, as writing the updated index is just an optimization and git knows it can be avoided.

I don’t think there are many chances to actually stumble on this in the real life, but I’m writing this down so that if I ever do I have an easy way to remember what happened and find the solution.


  • I won’t name name or provide details to protect the innocents (and the guilty), but thanks to all of the people involved in the conversations who helped find the answer.↩︎
  • Related, but unrelated TIL: there is a place called Secondo (second), near Venice, but it’s already a frazione (fraction / subdivision of municipality).↩︎

blog.trueelena.org/blog/2023/0…

Unknown parent

Questo sito utilizza cookie per riconosce gli utenti loggati e quelli che tornano a visitare. Proseguendo la navigazione su questo sito, accetti l'utilizzo di questi cookie.