summaryrefslogtreecommitdiff
path: root/lisp/version.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/version.el')
-rw-r--r--lisp/version.el73
1 files changed, 1 insertions, 72 deletions
diff --git a/lisp/version.el b/lisp/version.el
index 75763b3f682..43778739ba6 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -93,41 +93,6 @@ or if we could not determine the revision.")
(define-obsolete-variable-alias 'emacs-bzr-version
'emacs-repository-version "24.4")
-(defun emacs-bzr-version-dirstate (dir)
- "Try to return as a string the bzr revision ID of directory DIR.
-This uses the dirstate file's parent revision entry.
-Returns nil if unable to find this information."
- (let ((file (expand-file-name ".bzr/checkout/dirstate" dir)))
- (when (file-readable-p file)
- (with-temp-buffer
- (insert-file-contents file)
- (and (looking-at "#bazaar dirstate flat format 3")
- (forward-line 3)
- (looking-at "[0-9]+\0\\([^\0\n]+\\)\0")
- (match-string 1))))))
-
-(defun emacs-bzr-version-bzr (dir)
- "Ask bzr itself for the version information for directory DIR."
- ;; Comments on `bzr version-info':
- ;; i) Unknown files also cause clean != 1.
- ;; ii) It can be slow, contacting the upstream repo to get the
- ;; branch nick if one is not set locally, even with a custom
- ;; template that is not asking for the nick (as used here). You'd
- ;; think the latter part would be trivial to fix:
- ;; https://bugs.launchpad.net/bzr/+bug/882541/comments/3
- ;; https://bugs.launchpad.net/bzr/+bug/629150
- ;; You can set the nick locally with `bzr nick ...', which speeds
- ;; things up enormously. `bzr revno' does not have this issue, but
- ;; has no way to print the revision_id AFAICS.
- (message "Waiting for bzr...")
- (with-temp-buffer
- (if (zerop
- (call-process "bzr" nil '(t nil) nil "version-info"
- "--custom"
- "--template={revno} {revision_id} (clean = {clean})"
- dir))
- (buffer-string))))
-
(define-obsolete-function-alias 'emacs-bzr-get-version
'emacs-repository-get-version "24.4")
@@ -145,43 +110,7 @@ maybe ask the VCS itself, if the sources appear to be under
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))
- (cond ((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 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-repository-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))))))
- ((file-directory-p (expand-file-name ".git" dir))
+ (cond ((file-directory-p (expand-file-name ".git" dir))
(message "Waiting for git...")
(with-temp-buffer
(let ((default-directory (file-name-as-directory dir)))