mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
emacs-bzr-get-version tweak
* lisp/version.el (emacs-bzr-get-version): Handle lightweight checkouts of local branches.
This commit is contained in:
parent
05920a43fc
commit
263f20cd0a
2 changed files with 32 additions and 12 deletions
|
|
@ -1,7 +1,11 @@
|
|||
2012-04-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* version.el (emacs-bzr-get-version):
|
||||
Handle lightweight checkouts of local branches.
|
||||
|
||||
2012-04-09 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* international/characters.el: Recover lost case pairs.
|
||||
(Bug#11209)
|
||||
* international/characters.el: Recover lost case pairs. (Bug#11209)
|
||||
|
||||
2012-04-09 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -85,19 +85,35 @@ String giving the bzr revision number from which this Emacs was built.
|
|||
This is nil if Emacs was not built from a bzr checkout, or if we could
|
||||
not determine the revision.")
|
||||
|
||||
(defun emacs-bzr-get-version () "\
|
||||
(defun emacs-bzr-get-version (&optional dir) "\
|
||||
Try to return as a string the bzr revision number of the Emacs sources.
|
||||
Returns nil if the sources do not seem to be under bzr, or if we could
|
||||
not determine the revision. Note that this reports on the current state
|
||||
of the sources, which may not correspond to the running Emacs."
|
||||
(let ((file (expand-file-name ".bzr/branch/last-revision" source-directory)))
|
||||
(if (file-readable-p file)
|
||||
(with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(goto-char (point-max))
|
||||
(if (looking-back "\n")
|
||||
(delete-char -1))
|
||||
(buffer-string)))))
|
||||
of the sources, which may not correspond to the running Emacs.
|
||||
|
||||
Optional argument DIR is a directory to use instead of `source-directory'."
|
||||
(or dir (setq dir source-directory))
|
||||
(when (file-directory-p (setq dir (expand-file-name ".bzr/branch" dir)))
|
||||
(let (file loc)
|
||||
(cond ((file-readable-p
|
||||
(setq file (expand-file-name "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 "location" dir)))
|
||||
;; If the parent branch is local, try looking there for the revid.
|
||||
(if (setq loc (with-temp-buffer
|
||||
(insert-file-contents file)
|
||||
(if (looking-at "file://\\(.*\\)")
|
||||
(match-string 1))))
|
||||
(emacs-bzr-get-version loc)))
|
||||
;; Could fall back to eg `bzr testament' at this point.
|
||||
))))
|
||||
|
||||
;; We put version info into the executable in the form that `ident' uses.
|
||||
(or (eq system-type 'windows-nt)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue