Subject: Re: bug#21559: 25.0.50; auto-revert-mode breaks git rebase

From: Mitchel Humpherys <[email-masked]>
Date: Fri, 05 Feb 2016 16:01:33 -0800

On Fri, Sep 25 2015 at 03:45:56 PM, Ben Gamari <[email-masked]> wrote:
> Arguably `git rebase` should be holding the `index.lock` for the entire
> duration of the process (or be more resilient to the lock being taken)
> but sadly this isn't the case. Emacs should behave appropriately to
> accomodate this behavior.

I don't think this is quite right.  As I understand it, git only takes
index.lock for operations that mutate the index [1].

It wouldn't make sense for git to hold index.lock for the entirety of
the rebase operation since you can stop in the middle of an interactive
rebase and do anything you want (mess with the index, add new commits,
anything).

I think the real question is: why is vc-find-file-hook (or
vc-refresh-state) trying to mutate the index?  Shouldn't refreshing a
buffer be a read-only operation (at least with respect to the VCS)?

[1] http://git.661346.n2.nabble.com/Git-rebase-dies-with-fatal-Unable-to-create-git-index-lock-File-exists-td7596365.html