emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] elpa-admin c84575d: * elpa-admin.el (elpaa--get-release-revision)


From: Stefan Monnier
Subject: [elpa] elpa-admin c84575d: * elpa-admin.el (elpaa--get-release-revision): Fix code for :core pkgs
Date: Tue, 9 Mar 2021 22:32:28 -0500 (EST)

branch: elpa-admin
commit c84575d8acd95765497de3de1b69998cad533f56
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * elpa-admin.el (elpaa--get-release-revision): Fix code for :core pkgs
    
    (elpaa--select-revision): Be more forgiving.
---
 elpa-admin.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/elpa-admin.el b/elpa-admin.el
index 5cb3d26..66614c8 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -163,7 +163,13 @@ commit which modified the \"Version:\" pseudo header."
               (not (member vers (car version-map))))
     (pop version-map))
   (or (nth 2 (car version-map))
-      (let* ((default-directory (elpaa--dirname dir))
+      ;; When the mainfile is a symlink (e.g. for :core packages), run Git
+      ;; in the directory that holds the actual file, otherwise Git won't
+      ;; know what file we're talking about.
+      (let* ((mainfile (file-truename
+                        (expand-file-name (elpaa--main-file pkg-spec)
+                                          (elpaa--dirname dir))))
+             (default-directory (file-name-directory mainfile))
              (release-rev
               (with-temp-buffer
                 (if (equal 0         ;Don't signal an error if call errors out.
@@ -172,7 +178,7 @@ commit which modified the \"Version:\" pseudo header."
                       "git" "log" "-n1" "--oneline" "--no-patch"
                       "--pretty=format:%H"
                       "-L" (concat "/^;;* *\\(Package-\\)\\?Version:/,+1:"
-                                   (elpaa--main-file pkg-spec))))
+                                   (file-name-nondirectory mainfile))))
                     (buffer-string)
                   (cons 'error (buffer-string))))))
         (if (stringp release-rev)
@@ -246,7 +252,8 @@ Do it without leaving the current branch."
                       (expand-file-name (elpaa--main-file pkg-spec) dir)))
                 (default-directory (file-name-directory ftn)))
            (vc-working-revision ftn))))
-    (if (equal rev cur-rev)
+    ;; Don't fail in case `rev' is not known.
+    (if (or (not rev) (equal rev cur-rev))
         (elpaa--message "Current revision is already desired revision!")
       (with-temp-buffer
         (let ((default-directory (elpaa--dirname dir)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]