emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 6a6bb82: Discard the Bazaar case in repository vers


From: Ulrich Müller
Subject: [Emacs-diffs] master 6a6bb82: Discard the Bazaar case in repository version detection
Date: Sat, 17 Jan 2015 09:52:36 +0000

branch: master
commit 6a6bb820d08368f9754bae73c9507c6fc36d1dca
Author: Ulrich Müller <address@hidden>
Commit: Ulrich Müller <address@hidden>

    Discard the Bazaar case in repository version detection
    
    * version.el (emacs-bzr-version-dirstate, emacs-bzr-version-bzr):
    Remove.
    (emacs-repository-get-version): Discard the Bazaar case.
    
    * vc/vc-bzr.el (vc-bzr-version-dirstate): Rename from
    emacs-bzr-version-dirstate and move from version.el to here.
    (vc-bzr-working-revision): Use it.
---
 lisp/ChangeLog    |    9 ++++++
 lisp/vc/vc-bzr.el |   20 +++++++++++++-
 lisp/version.el   |   73 +----------------------------------------------------
 3 files changed, 28 insertions(+), 74 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 2cc878d..018c6df 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
+2015-01-17  Ulrich Müller  <address@hidden>
+
+       * version.el (emacs-bzr-version-dirstate, emacs-bzr-version-bzr):
+       Remove.
+       (emacs-repository-get-version): Discard the Bazaar case.
+       * vc/vc-bzr.el (vc-bzr-version-dirstate): Rename from
+       emacs-bzr-version-dirstate and move from version.el to here.
+       (vc-bzr-working-revision): Use it.
+
 2015-01-17  Stefan Monnier  <address@hidden>
 
        * emacs-lisp/eieio-generic.el (call-next-method): Don't bother checking
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index 163df1f..94574fd 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -493,6 +493,22 @@ in the branch repository (or whose status not be 
determined)."
     (add-hook 'after-save-hook 'vc-bzr-resolve-when-done nil t)
     (message "There are unresolved conflicts in this file")))
 
+(defun vc-bzr-workfile-unchanged-p (file)
+  (eq 'unchanged (car (vc-bzr-status file))))
+
+(defun vc-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 vc-bzr-working-revision (file)
   (let* ((rootdir (vc-bzr-root file))
          (branch-format-file (expand-file-name vc-bzr-admin-branch-format-file
@@ -538,8 +554,8 @@ in the branch repository (or whose status not be 
determined)."
                         ;; files exist.
                         (and (file-exists-p branch-format-file)
                              (file-exists-p lastrev-file)
-                             (equal (emacs-bzr-version-dirstate l-c-parent-dir)
-                                    (emacs-bzr-version-dirstate rootdir))))))
+                             (equal (vc-bzr-version-dirstate l-c-parent-dir)
+                                    (vc-bzr-version-dirstate rootdir))))))
                 t)))
         (with-temp-buffer
           (insert-file-contents branch-format-file)
diff --git a/lisp/version.el b/lisp/version.el
index 75763b3..4377873 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)))



reply via email to

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