emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r115984: Make the function emacs-repository-get-vers


From: Eric S. Raymond
Subject: [Emacs-diffs] trunk r115984: Make the function emacs-repository-get-version polyvalent.
Date: Sun, 12 Jan 2014 00:02:15 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115984
revision-id: address@hidden
parent: address@hidden
committer: Eric S. Raymond <address@hidden>
branch nick: trunk
timestamp: Sat 2014-01-11 18:59:49 -0500
message:
  Make the function emacs-repository-get-version polyvalent.
  
  * version.el (emacs-repository-get-version): Enhance so the
  function works correctly in either a Bazaar or Git repo. The
  Bazaar case can be discarded  after the repo transition.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/version.el                version.el-20091113204419-o5vbwnq5f7feedwu-1613
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-01-11 14:15:17 +0000
+++ b/lisp/ChangeLog    2014-01-11 23:59:49 +0000
@@ -1,5 +1,9 @@
 2014-01-11  Eric S. Raymond  <address@hidden>
 
+       * version.el (emacs-repository-get-version): Enhancee so the
+       function works correctly in either a Bazaar or Git repo. The
+       Bazaar case can be discarded  after the repo transition.
+
        * play/meese.el: It's 2014 and Ed Meese is justly forgotten. Goes
        with removal of the joke manpages from /etc.
 

=== modified file 'lisp/version.el'
--- a/lisp/version.el   2014-01-10 17:13:10 +0000
+++ b/lisp/version.el   2014-01-11 23:59:49 +0000
@@ -145,40 +145,52 @@
 version control.  If `force', always ask.  the VCS. Otherwise
 only ask the VCS if we cannot find any information ourselves."
   (or dir (setq dir source-directory))
-  (when (file-directory-p (expand-file-name ".bzr/branch" dir))
-    (if (eq external 'force)
-        (emacs-bzr-version-bzr dir)
-      (let (file loc rev)
-        (cond ((file-readable-p
-                (setq file (expand-file-name ".bzr/branch/last-revision" dir)))
-               (with-temp-buffer
-                 (insert-file-contents file)
-                 (goto-char (point-max))
-                 (if (looking-back "\n")
-                     (delete-char -1))
-                 (buffer-string)))
-              ;; OK, no last-revision.  Is it a lightweight checkout?
-              ((file-readable-p
-                (setq file (expand-file-name ".bzr/branch/location" dir)))
-               (setq rev (emacs-bzr-version-dirstate dir))
-               ;; If the parent branch is local, try looking there for the rev.
-               ;; Note: there is no guarantee that the parent branch's rev
-               ;; corresponds to this branch.  This branch could have
-               ;; been made with a specific -r revno argument, or the
-               ;; parent could have been updated since this branch was created.
-               ;; To try and detect this, we check the dirstate revids
-               ;; to see if they match.
-               (if (and (setq loc (with-temp-buffer
-                                    (insert-file-contents file)
-                                    (if (looking-at "file://\\(.*\\)")
-                                        (match-string 1))))
-                        (equal rev (emacs-bzr-version-dirstate loc)))
-                   (emacs-bzr-get-version loc)
-                 ;; If parent does not match, the best we can do without
-                 ;; calling external commands is to use the dirstate rev.
-                 rev))
-              (external
-               (emacs-bzr-version-bzr dir)))))))
+  (or 
+   ;; Bazaar case -- to be removed after transition
+   (when (file-directory-p (expand-file-name ".bzr/branch" dir))
+     (if (eq external 'force)
+        (emacs-bzr-version-bzr dir)
+       (let (file loc rev)
+        (cond ((file-readable-p
+                (setq file (expand-file-name ".bzr/branch/last-revision" dir)))
+               (with-temp-buffer
+                 (insert-file-contents file)
+                 (goto-char (point-max))
+                 (if (looking-back "\n")
+                     (delete-char -1))
+                 (buffer-string)))
+              ;; OK, no last-revision.  Is it a lightweight checkout?
+              ((file-readable-p
+                (setq file (expand-file-name ".bzr/branch/location" dir)))
+               (setq rev (emacs-bzr-version-dirstate dir))
+               ;; If the parent branch is local, try looking there for the rev.
+               ;; Note: there is no guarantee that the parent branch's rev
+               ;; corresponds to this branch.  This branch could have
+               ;; been made with a specific -r revno argument, or the
+               ;; parent could have been updated since this branch was created.
+               ;; To try and detect this, we check the dirstate revids
+               ;; to see if they match.
+               (if (and (setq loc (with-temp-buffer
+                                    (insert-file-contents file)
+                                    (if (looking-at "file://\\(.*\\)")
+                                        (match-string 1))))
+                        (equal rev (emacs-bzr-version-dirstate loc)))
+                   (emacs-bzr-get-version loc)
+                 ;; If parent does not match, the best we can do without
+                 ;; calling external commands is to use the dirstate rev.
+                 rev))
+              (external
+               (emacs-bzr-version-bzr dir))))))
+   ;; Git case
+  (when (file-directory-p (expand-file-name ".git" dir))
+    (message "Waiting for git...")
+    (with-temp-buffer
+      (if (zerop
+          (call-process "git" nil '(t nil) nil "log"
+                        "-1"
+                        "--pretty=format:%N"))
+         (replace-regexp-in-string "\n" "" (buffer-string)))))
+   ))
 
 ;; We put version info into the executable in the form that `ident' uses.
 (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))


reply via email to

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