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.el11
1 files changed, 6 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index e146d89171a..7098de2ece3 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -267,11 +267,12 @@ The output is written out into PKG-FILE."
;; names to avoid an unnecessary error.
(file-name-base repo)))))
- ;; Clone the repository into `repo-dir'.
- (make-directory (file-name-directory repo-dir) t)
- (unless (setf (car (alist-get :upstream attr))
- (vc-clone backend repo repo-dir))
- (error "Failed to clone %s from %s" name repo))
+ ;; Clone the repository into `repo-dir' if necessary
+ (unless (file-exists-p repo-dir)
+ (make-directory (file-name-directory repo-dir) t)
+ (unless (setf (car (alist-get :upstream attr))
+ (vc-clone backend repo repo-dir))
+ (error "Failed to clone %s from %s" name repo)))
(unless (eq pkg-dir repo-dir)
;; Link from the right position in `repo-dir' to the package