summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2022-10-28 20:13:28 +0200
committerPhilip Kaludercic <philipk@posteo.net>2022-10-28 20:13:28 +0200
commita52cec7b6b89785ee5321ed67d096db7ce42ce9c (patch)
tree9622070b6f41081ec6adaaa8b42c232bfebd7335 /lisp/emacs-lisp
parent40977816550276aac0de75b6740fb4856e9a438b (diff)
downloademacs-a52cec7b6b89785ee5321ed67d096db7ce42ce9c.tar.gz
emacs-a52cec7b6b89785ee5321ed67d096db7ce42ce9c.tar.bz2
emacs-a52cec7b6b89785ee5321ed67d096db7ce42ce9c.zip
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.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package-vc.el11
1 files changed, 10 insertions, 1 deletions
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=)