summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2024-04-26 08:21:37 +0200
committerPhilip Kaludercic <philipk@posteo.net>2024-04-26 08:21:37 +0200
commit758fe9b670e9d889f5dee541c492417af6af9f10 (patch)
tree77f528ab027c8dd930833eebdbabdd2ad5ef4014 /lisp/emacs-lisp
parent32ed3d26793753124d344901a6401eecd9225cd1 (diff)
downloademacs-758fe9b670e9d889f5dee541c492417af6af9f10.tar.gz
Always update VC packages from a vc-dir buffer
* lisp/emacs-lisp/package-vc.el (vc-dir-prepare-status-buffer): Add a declaration. (package-vc-upgrade): Prepare a dummy vc-dir buffer to ensure that 'vc-pull' (or rather 'vc-deduce-fileset') can correctly infer the VC backend to use. (bug#70526)
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package-vc.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index ef056c7909b..c86577b6b26 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -774,6 +774,9 @@ conflicts with its remote repository state."
(package-vc-upgrade pkg-desc))))
(message "Done upgrading packages."))
+(declare-function vc-dir-prepare-status-buffer "vc-dir"
+ (bname dir backend &optional create-new))
+
;;;###autoload
(defun package-vc-upgrade (pkg-desc)
"Upgrade the package described by PKG-DESC from package's VC repository.
@@ -810,7 +813,10 @@ with the remote repository state."
(remove-hook 'vc-post-command-functions post-upgrade))))))
(add-hook 'vc-post-command-functions post-upgrade)
(with-demoted-errors "Failed to fetch: %S"
- (let ((default-directory pkg-dir))
+ (require 'vc-dir)
+ (with-current-buffer (vc-dir-prepare-status-buffer
+ (format " *package-vc-dir: %s*" pkg-dir)
+ pkg-dir (vc-responsible-backend pkg-dir))
(vc-pull)))))
(defun package-vc--archives-initialize ()