1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-10 08:10:21 -08:00

New user option: vc-allow-async-diff

Centralize the control for whether 'vc-diff' is asynchronous
across the backends, while also allowing 'vc-BACKEND-diff' to be
called asynchronously when needed.  Previously in bug#21969.

* lisp/vc/vc.el (vc-allow-async-diff): New user option.

* lisp/vc/vc.el (vc-version-diff, vc-diff, vc-diff-mergebase)
(vc-root-diff): Obey it.

* lisp/vc/log-view.el (log-view-diff-common): Same.

* lisp/vc/vc-annotate.el
(vc-annotate-show-diff-revision-at-line-internal): Same.

* lisp/vc/vc-git.el (vc-git-diff): Follow the ASYNC argument.

* lisp/vc/vc-hg.el (vc-hg-diff): Same.

* lisp/vc/vc-rcs.el (vc-rcs-diff): Same.
This commit is contained in:
Dmitry Gutov 2025-06-13 06:00:17 +03:00
parent 76f422da26
commit bec823b107
6 changed files with 34 additions and 23 deletions

View file

@ -594,6 +594,7 @@ the file in question, search for the log entry required and move point."
(car rev-at-line) t 1)))))))
(defun vc-annotate-show-diff-revision-at-line-internal (filediff)
(defvar vc-allow-async-diff)
(if (not (derived-mode-p 'vc-annotate-mode))
(message "Cannot be invoked outside of a vc annotate buffer")
(let* ((rev-at-line (vc-annotate-extract-revision-at-line))
@ -606,7 +607,7 @@ the file in question, search for the log entry required and move point."
(vc-call-backend vc-annotate-backend 'previous-revision
(if filediff fname nil) rev))
(vc-diff-internal
t
vc-allow-async-diff
;; The value passed here should follow what
;; `vc-deduce-fileset' returns.
(list vc-annotate-backend