From a52cec7b6b89785ee5321ed67d096db7ce42ce9c Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Fri, 28 Oct 2022 20:13:28 +0200 Subject: [PATCH] Explicitly handle :vc-backend in a package specification * lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist): Document the feature. (package-vc-unpack): Check for :vc-backend in both PKG-SPEC and the archive specification data. --- lisp/emacs-lisp/package-vc.el | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index 5d8b2be8e97..3816c6152d2 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el @@ -145,6 +145,13 @@ A revision string indicating the revision used for the current release in the package archive. If missing or nil, no release was made. + `:vc-backend' (symbol) + +A symbol indicating what the VC backend to use for cloning a +package. The value ought to be a member of +`vc-handled-backends'. If missing, `vc-clone' will fall back +onto the archive default or `package-vc-default-backend'. + All other values are ignored.") (defvar package-vc-archive-data-alist nil @@ -409,7 +416,9 @@ the `:brach' attribute in PKG-SPEC." ;; Clone the repository into `repo-dir' if necessary (unless (file-exists-p repo-dir) (make-directory (file-name-directory repo-dir) t) - (let ((backend (or (package-vc-guess-backend url) + (let ((backend (or (plist-get pkg-spec :vc-backend) + (package-vc-query-spec pkg-desc :vc-backend) + (package-vc-guess-backend url) (plist-get (alist-get (package-desc-archive pkg-desc) package-vc-archive-data-alist nil nil #'string=) -- 2.39.5