On 02/07/2016 02:55 AM, Ben Gamari wrote: > I've spoken with some folks in #git about this issue. > > * the index lock is held "because it needs to read the index and > compare it to the worktree. If it doesn't take the index lock, other > things could change either the index or the worktree underneath it, > making git status lie (or even crash)" > > * It sounds as though a patch refactoring `git rebase` such that it > holds the index lock may be considered, although this is a > non-trivial refactoring as `rebase` is currently a shell script This problem is really a git bug. For any VCS, I should be able to, in one terminal, run while true; do $VCS status; done and in another terminal, run $VCS any-damn-operation and not cause repository corruption or mysterious operation failures. Maybe it's a good idea for Emacs to work around this particular bug in git, but there is nothing semantically wrong with what vc-git is doing here. FWIW, whatever its other faults, hg at least operates correctly here.