From 408fdaff51fc6237a753aa6b996956c9fa1d0c0d Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Fri, 26 Apr 2024 08:21:37 +0200 Subject: [PATCH] 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) (cherry picked from commit 758fe9b670e9d889f5dee541c492417af6af9f10) --- lisp/emacs-lisp/package-vc.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 () -- 2.39.5