summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package-vc.el15
1 files changed, 12 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index a9aa6854027..3a1c89f73ee 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -281,9 +281,18 @@ The output is written out into PKG-FILE."
(defun package-vc-update (pkg-desc)
"Attempt to update the packager PKG-DESC."
- (let ((default-directory (package-desc-dir pkg-desc)))
- (with-demoted-errors "Error during package update: %S"
- (vc-pull))))
+ (let* ((default-directory (package-desc-dir pkg-desc))
+ (ret (with-demoted-errors "Error during package update: %S"
+ (vc-pull)))
+ (buf (cond
+ ((processp ret) (process-buffer ret))
+ ((bufferp ret) ret))))
+ (if buf
+ (with-current-buffer buf
+ (vc-run-delayed
+ (package-vc-unpack-1 pkg-desc default-directory)))
+ (package-vc-unpack-1 pkg-desc default-directory))))
+
;;;###autoload
(defun package-vc-install (name-or-url &optional name rev)