From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ulrich Mueller Newsgroups: gmane.emacs.bugs Subject: bug#19049: 25.0.50; emacs-repository-get-version doesn't work with git Date: Fri, 14 Nov 2014 09:07:33 +0100 Message-ID: <21605.47173.374392.454323@a1i15.kph.uni-mainz.de> References: <21605.13364.160424.795470@a1i15.kph.uni-mainz.de> <21605.44314.482383.636065@a1i15.kph.uni-mainz.de> <83y4rei635.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1415952503 23522 80.91.229.3 (14 Nov 2014 08:08:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 14 Nov 2014 08:08:23 +0000 (UTC) Cc: 19049@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Nov 14 09:08:18 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XpBvV-0001WV-Ue for geb-bug-gnu-emacs@m.gmane.org; Fri, 14 Nov 2014 09:08:18 +0100 Original-Received: from localhost ([::1]:35320 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XpBvV-00078b-FV for geb-bug-gnu-emacs@m.gmane.org; Fri, 14 Nov 2014 03:08:17 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48707) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XpBvM-00070I-1b for bug-gnu-emacs@gnu.org; Fri, 14 Nov 2014 03:08:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XpBvG-00076G-Jr for bug-gnu-emacs@gnu.org; Fri, 14 Nov 2014 03:08:07 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:34668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XpBvG-000763-Dy for bug-gnu-emacs@gnu.org; Fri, 14 Nov 2014 03:08:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XpBvF-0001aK-VM for bug-gnu-emacs@gnu.org; Fri, 14 Nov 2014 03:08:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Ulrich Mueller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 14 Nov 2014 08:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19049 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed Original-Received: via spool by 19049-submit@debbugs.gnu.org id=B19049.14159524586058 (code B ref 19049); Fri, 14 Nov 2014 08:08:01 +0000 Original-Received: (at 19049) by debbugs.gnu.org; 14 Nov 2014 08:07:38 +0000 Original-Received: from localhost ([127.0.0.1]:60114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XpBur-0001Zd-Cx for submit@debbugs.gnu.org; Fri, 14 Nov 2014 03:07:38 -0500 Original-Received: from a1www.kph.uni-mainz.de ([134.93.134.1]:59202) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XpBuo-0001ZU-Ml for 19049@debbugs.gnu.org; Fri, 14 Nov 2014 03:07:35 -0500 Original-Received: from a1i15.kph.uni-mainz.de (a1i15.kph.uni-mainz.de [134.93.134.92]) by a1www.kph.uni-mainz.de (8.14.9/8.14.7) with ESMTP id sAE87Xqd015033; Fri, 14 Nov 2014 09:07:33 +0100 Original-Received: from a1i15.kph.uni-mainz.de (localhost [127.0.0.1]) by a1i15.kph.uni-mainz.de (8.14.8/8.14.2) with ESMTP id sAE87XOh003324; Fri, 14 Nov 2014 09:07:33 +0100 Original-Received: (from ulm@localhost) by a1i15.kph.uni-mainz.de (8.14.8/8.14.8/Submit) id sAE87X6V003319; Fri, 14 Nov 2014 09:07:33 +0100 In-Reply-To: <83y4rei635.fsf@gnu.org> X-Mailer: VM 8.2.0b under 24.3.1 (x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:95981 >>>>> On Fri, 14 Nov 2014, Eli Zaretskii wrote: >> Also, according to the message in commit 0abf413 (of 2014-01-11): >> "The Bazaar case can be discarded after the repo transition." >> >> Should that be done now? > No. The migration to git is just an experiment. We plan on going > back to bzr in a month or so. :-) >From 2936042bd87ef1a626578819a23c18b5e1e634b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrich=20M=C3=BCller?= Date: Fri, 14 Nov 2014 09:05:02 +0100 Subject: [PATCH] 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 | 10 ++++++++ lisp/vc/vc-bzr.el | 17 +++++++++++-- lisp/version.el | 73 +------------------------------------------------------ 3 files changed, 26 insertions(+), 74 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c3b879a..9044804 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2014-11-14 Ulrich Müller + + * 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. + 2014-11-14 Fabián Ezequiel Gallina * progmodes/python.el (python-shell-virtualenv-root): Rename from diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index a093bcb..3a5de22 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el @@ -496,6 +496,19 @@ in the branch repository (or whose status not be determined)." (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) ;; Together with the code in vc-state-heuristic, this makes it possible ;; to get the initial VC state of a Bzr file even if Bzr is not installed. @@ -543,8 +556,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 1ea38da..410e730 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))) -- 2.1.3