From unknown Fri Aug 15 15:57:29 2025 X-Loop: don@donarmstrong.com Subject: bug#908: Displaying renamed files in vc-dir for bzr is incorrect Reply-To: Dan Nicolaescu , 908@debbugs.gnu.org Resent-From: Dan Nicolaescu Original-Sender: dann@ics.uci.edu Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sun, 07 Sep 2008 10:55:04 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 908 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@emacsbugs.donarmstrong.com id=B.122078445618005 (code B ref -1); Sun, 07 Sep 2008 10:55:04 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-4.7 required=4.0 tests=AWL,BAYES_00,FOURLA, MURPHY_DRUGS_REL8,RCVD_IN_DNSWL_LOW autolearn=ham version=3.2.3-bugs.debian.org_2005_01_02 Received: (at submit) by emacsbugs.donarmstrong.com; 7 Sep 2008 10:47:36 +0000 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m87AlWp4017938 for ; Sun, 7 Sep 2008 03:47:33 -0700 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KcHnn-0005n3-TV for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2008 06:47:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KcHnj-0005eA-MN for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2008 06:47:31 -0400 Received: from [199.232.76.173] (port=39643 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KcHnj-0005dh-GV for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2008 06:47:27 -0400 Received: from sallyv1.ics.uci.edu ([128.195.1.109]:48882) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1KcHnj-0006Yo-0y for bug-gnu-emacs@gnu.org; Sun, 07 Sep 2008 06:47:27 -0400 X-ICS-MailScanner-Watermark: 1221389175.23073@BxAv9H85EXQIoijumNQSAg Received: from mothra.ics.uci.edu (mothra.ics.uci.edu [128.195.6.93]) by sallyv1.ics.uci.edu (8.13.7+Sun/8.13.7) with ESMTP id m87AkEQZ011895 for ; Sun, 7 Sep 2008 03:46:14 -0700 (PDT) Message-Id: <200809071046.m87AkEQZ011895@sallyv1.ics.uci.edu> From: Dan Nicolaescu To: bug-gnu-emacs Lines: 114 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 07 Sep 2008 03:46:14 -0700 Sender: dann@ics.uci.edu X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.363, required 5, autolearn=disabled, ALL_TRUSTED -1.44, TW_BZ 0.08) X-ICS-MailScanner-From: dann@mothra.ics.uci.edu X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) When using Bzr, renamed files for are shown like this in vc-dir: nil OLD_NAME => NEW_NAME where `nil' is supposed to be the VC state and `OLD_NAME => NEW_NAME' is believed to be a file name... The patch below fixes this. Not sure if this is appropriate to check in now given the feature freeze, as the patch needs to add a feature in order to fix the bug. So record the fix here so that it does not get lost. * vc-bzr.el (vc-bzr-extra-fileinfo): New defstruct. (vc-bzr-status-printer): New function. (vc-bzr-after-dir-status): Deal with renamed files. Index: vc-bzr.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/vc-bzr.el,v retrieving revision 1.65 diff -u -3 -p -u -p -r1.65 vc-bzr.el --- vc-bzr.el 10 Aug 2008 19:48:57 -0000 1.65 +++ vc-bzr.el 7 Sep 2008 10:36:07 -0000 @@ -52,7 +52,8 @@ (eval-when-compile (require 'cl) - (require 'vc)) ; for vc-exec-after + (require 'vc) ; for vc-exec-after + (require 'vc-dir)) ;; Clear up the cache to force vc-call to check again and discover ;; new functions when we reload this file. @@ -576,6 +577,22 @@ stream. Standard error output is discar ;; else fall back to default vc.el representation (vc-default-prettify-state-info 'Bzr file))) +(defstruct (vc-bzr-extra-fileinfo + (:copier nil) + (:constructor vc-bzr-create-extra-fileinfo (extra-name)) + (:conc-name vc-bzr-extra-fileinfo->)) + extra-name) ;; original name for rename targets, new name for + +(defun vc-bzr-status-printer (info) + "Pretty-printer for the vc-dir-fileinfo structure." + (let ((extra (vc-dir-fileinfo->extra info))) + (vc-default-status-printer 'Bzr info) + (when extra + (insert (propertize + (format " (renamed from %s)" + (vc-bzr-extra-fileinfo->extra-name extra)) + 'face 'font-lock-comment-face))))) + ;; FIXME: this needs testing, it's probably incomplete. (defun vc-bzr-after-dir-status (update-function) (let ((status-str nil) @@ -589,6 +606,9 @@ stream. Standard error output is discar ;; For conflicts, should we list the .THIS/.BASE/.OTHER? ("C " . conflict) ("? " . unregistered) + ("? " . unregistered) + ;; No such state, but we need to distinguish this case. + ("R " . renamed) ;; Ignore "P " and "P." for pending patches. )) (translated nil) @@ -598,23 +618,31 @@ stream. Standard error output is discar (setq status-str (buffer-substring-no-properties (point) (+ (point) 3))) (setq translated (cdr (assoc status-str translation))) - ;; For conflicts the file appears twice in the listing: once - ;; with the M flag and once with the C flag, so take care not - ;; to add it twice to `result'. Ugly. - (if (eq translated 'conflict) - (let* ((file - (buffer-substring-no-properties - ;;For files with conflicts the format is: - ;;C Text conflict in FILENAME - ;; Bah. - (+ (point) 21) (line-end-position))) - (entry (assoc file result))) - (when entry - (setf (nth 1 entry) 'conflict))) + (cond + ((eq translated 'conflict) + ;; For conflicts the file appears twice in the listing: once + ;; with the M flag and once with the C flag, so take care + ;; not to add it twice to `result'. Ugly. + (let* ((file + (buffer-substring-no-properties + ;;For files with conflicts the format is: + ;;C Text conflict in FILENAME + ;; Bah. + (+ (point) 21) (line-end-position))) + (entry (assoc file result))) + (when entry + (setf (nth 1 entry) 'conflict)))) + ((eq translated 'renamed) + (re-search-forward "R \\(.*\\) => \\(.*\\)$" (line-end-position) t) + (let ((new-name (match-string 2)) + (old-name (match-string 1))) + (push (list new-name 'edited + (vc-bzr-create-extra-fileinfo old-name)) result))) + (t (push (list (buffer-substring-no-properties (+ (point) 4) (line-end-position)) - translated) result)) + translated) result))) (forward-line)) (funcall update-function result))) From unknown Fri Aug 15 15:57:29 2025 X-Loop: don@donarmstrong.com Subject: bug#908: Displaying renamed files in vc-dir for bzr is incorrect Reply-To: Chong Yidong , 908@debbugs.gnu.org Resent-From: Chong Yidong Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sun, 07 Sep 2008 14:25:05 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 908 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 908-submit@emacsbugs.donarmstrong.com id=B908.122079718729176 (code B ref 908); Sun, 07 Sep 2008 14:25:05 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,BAYES_00, MURPHY_DRUGS_REL8 autolearn=ham version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 908) by emacsbugs.donarmstrong.com; 7 Sep 2008 14:19:47 +0000 Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m87EJifl029126 for <908@emacsbugs.donarmstrong.com>; Sun, 7 Sep 2008 07:19:45 -0700 Received: by cyd.mit.edu (Postfix, from userid 1000) id E680057E2BF; Sun, 7 Sep 2008 10:22:30 -0400 (EDT) From: Chong Yidong To: Dan Nicolaescu Cc: 908@debbugs.gnu.org Date: Sun, 07 Sep 2008 10:22:30 -0400 Message-ID: <87zlmkox21.fsf@cyd.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii > When using Bzr, renamed files for are shown like this in vc-dir: > > nil OLD_NAME => NEW_NAME > > where `nil' is supposed to be the VC state and `OLD_NAME => NEW_NAME' is > believed to be a file name... > > The patch below fixes this. Not sure if this is appropriate to check in > now given the feature freeze, as the patch needs to add a feature in > order to fix the bug. So record the fix here so that it does not get > lost. Please do check in your patch, since it fixes a bug. From unknown Fri Aug 15 15:57:29 2025 X-Loop: don@donarmstrong.com Subject: bug#908: Displaying renamed files in vc-dir for bzr is incorrect Reply-To: Dan Nicolaescu , 908@debbugs.gnu.org Resent-From: Dan Nicolaescu Original-Sender: dann@ics.uci.edu Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Sun, 07 Sep 2008 17:40:04 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 908 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by 908-submit@emacsbugs.donarmstrong.com id=B908.1220808752660 (code B ref 908); Sun, 07 Sep 2008 17:40:04 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02 (2007-08-08) on rzlab.ucr.edu X-Spam-Level: X-Spam-Status: No, score=-5.8 required=4.0 tests=AWL,BAYES_00,HAS_BUG_NUMBER, MURPHY_DRUGS_REL8 autolearn=ham version=3.2.3-bugs.debian.org_2005_01_02 Received: (at 908) by emacsbugs.donarmstrong.com; 7 Sep 2008 17:32:32 +0000 Received: from sallyv1.ics.uci.edu (sallyv1.ics.uci.edu [128.195.1.109]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m87HWTVd000654 for <908@emacsbugs.donarmstrong.com>; Sun, 7 Sep 2008 10:32:30 -0700 X-ICS-MailScanner-Watermark: 1221413455.98033@6VTw8rvu0Wc6XsHjFIReGQ Received: from mothra.ics.uci.edu (mothra.ics.uci.edu [128.195.6.93]) by sallyv1.ics.uci.edu (8.13.7+Sun/8.13.7) with ESMTP id m87HUsrb026529; Sun, 7 Sep 2008 10:30:54 -0700 (PDT) Message-Id: <200809071730.m87HUsrb026529@sallyv1.ics.uci.edu> From: Dan Nicolaescu To: Chong Yidong Cc: 908@debbugs.gnu.org References: <87zlmkox21.fsf@cyd.mit.edu> In-Reply-To: <87zlmkox21.fsf@cyd.mit.edu> (Chong Yidong's message of "Sun, 07 Sep 2008 10:22:30 -0400") Lines: 17 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 07 Sep 2008 10:30:53 -0700 Sender: dann@ics.uci.edu X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.363, required 5, autolearn=disabled, ALL_TRUSTED -1.44, TW_BZ 0.08) X-ICS-MailScanner-From: dann@mothra.ics.uci.edu Chong Yidong writes: > > When using Bzr, renamed files for are shown like this in vc-dir: > > > > nil OLD_NAME => NEW_NAME > > > > where `nil' is supposed to be the VC state and `OLD_NAME => NEW_NAME' is > > believed to be a file name... > > > > The patch below fixes this. Not sure if this is appropriate to check in > > now given the feature freeze, as the patch needs to add a feature in > > order to fix the bug. So record the fix here so that it does not get > > lost. > > Please do check in your patch, since it fixes a bug. Done. Thanks!