[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21559: 25.0.50; auto-revert-mode breaks git rebase
From: |
Dmitry Gutov |
Subject: |
bug#21559: 25.0.50; auto-revert-mode breaks git rebase |
Date: |
Tue, 20 Feb 2018 01:41:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Thunderbird/59.0 |
On 2/15/18 9:08 PM, Alexei Khlebnikov wrote:
Judging from the comment of the commit implementing the
"--no-optional-locks" switch,
https://github.com/git/git/commit/27344d6a6c8056664966e11acf674e5da6dd7ee3
, the switch was implemented exactly for background refresh in "tools
like IDEs or fancy editors".
I.e. for mitigating this particular bug! Now we only have to use this
switch in our "fancy editor".
OK, here's my question: what is a "background refresh"? Must be consider
every VC operation to be "background"?
From what I see of this switch's description, it's going to (slightly?
imperceptibly?) slow down the VC operations. It would be cool to see
some measurement of that effect.
Failing that, why don't we try something else first? If the problem
occurs solely due to auto-revert-mode's calls to Git, let's try adding
that environment variable binding inside auto-revert-handler. The patch
is below. Does it solve the problem as well?
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index cf145e0ee3..41e9f00049 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -709,7 +709,9 @@ auto-revert-handler
;; `preserve-modes' avoids changing the (minor) modes. But we do
;; want to reset the mode for VC, so we do it manually.
(when (or revert auto-revert-check-vc-info)
- (vc-refresh-state))))
+ (let ((process-environment
+ (cons "GIT_OPTIONAL_LOCKS=0" process-environment)))
+ (vc-refresh-state)))))
(defun auto-revert-tail-handler (size)
(let ((modified (buffer-modified-p))
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Alexei Khlebnikov, 2018/02/14
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Alexei Khlebnikov, 2018/02/15
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Michael Albinus, 2018/02/20
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Dmitry Gutov, 2018/02/20
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Michael Albinus, 2018/02/20
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Dmitry Gutov, 2018/02/20
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Alexei Khlebnikov, 2018/02/21
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Michael Albinus, 2018/02/22
- bug#21559: 25.0.50; auto-revert-mode breaks git rebase, Dmitry Gutov, 2018/02/22