From: Jason Gunthorpe Date: Mon, 16 Sep 2013 21:21:59 GMT Subject: Re: Git rebase dies with fatal: Unable to create '.../.git/index.lock': File exists. Message-ID: <20130916212159.GA16437@obsidianresearch.com> In-Reply-To: <20130916211501.GA5477@sigill.intra.peff.net> On Mon, Sep 16, 2013 at 05:15:01PM -0400, Jeff King wrote: > On Mon, Sep 16, 2013 at 12:28:52PM -0600, Jason Gunthorpe wrote: > > > I have emacs windows open that have files within the git tree open in > > them. My emacs has vc-git mode loaded and global-auto-revert-mode set. > > > > During the rebase the files open in emacs are changed by git, when > > emacs notices this (which is random with respect to the ongoing > > rebase) it auto reverts and runs git commands (due to vc-git), which > > causes the rebase to randomly fail. > > > > Worse, I've noticed that this also randomly seems to cause the rebase > > to loose a commit if you --continue from that point. > > > > Can git have some retry in the locking so this doesn't happen? > > I'm not clear on which git commands are being run. If they are actually > mutating the index, then isn't this more than a lock contention issue? > In other words, "git rebase" is assuming nobody is mucking with the > index while it runs; if emacs is doing so, then the results could be > quite confusing, even if we retried the lock acquisition. I'm not sure what commands vc-git mode in Emacs is actually running automatically, but I'd be surprised and alaramed if they were mutating command.. I agree retry on the lock is hackish, holding the lock continuously rather than release/reaquire during operation would be much stronger prevention. Jason