]> git.eshelyaron.com Git - emacs.git/commitdiff
Only clone packages if necessary
authorPhilip Kaludercic <philipk@posteo.net>
Sun, 16 Oct 2022 22:13:06 +0000 (00:13 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Sun, 16 Oct 2022 22:13:06 +0000 (00:13 +0200)
* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if
directory exists before cloning.

lisp/emacs-lisp/package-vc.el

index e146d89171aabab755d0992b6847e41c26ee6ebd..7098de2ece3b4866c954409d42b91ad1958e8840 100644 (file)
@@ -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