[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))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r115984: Make the function emacs-repository-get-version polyvalent.,
Eric S. Raymond <=