From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Ryde Newsgroups: gmane.emacs.bugs Subject: bug#5773: 23.1; vc-diff save buffer when re-diffing (or save whole fileset) Date: Fri, 26 Mar 2010 09:42:39 +1100 Message-ID: <87pr2sja5c.fsf@blah.blah> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: dough.gmane.org 1269558157 32247 80.91.229.12 (25 Mar 2010 23:02:37 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 25 Mar 2010 23:02:37 +0000 (UTC) To: 5773@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Mar 26 00:02:28 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuw4J-0005dV-Rj for geb-bug-gnu-emacs@m.gmane.org; Fri, 26 Mar 2010 00:02:28 +0100 Original-Received: from localhost ([127.0.0.1]:47645 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nuvy1-0005xL-4s for geb-bug-gnu-emacs@m.gmane.org; Thu, 25 Mar 2010 18:55:57 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nuvxe-0005aF-Jz for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:55:34 -0400 Original-Received: from [140.186.70.92] (port=58079 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nuvxd-0005Y4-3O for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:55:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nuvxa-0005hy-7z for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:55:32 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41601) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuvxa-0005hp-4W for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:55:30 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1NuvpO-0006sE-J6; Thu, 25 Mar 2010 18:47:02 -0400 X-Loop: bug-gnu-emacs@gnu.org Resent-From: Kevin Ryde Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 Mar 2010 22:47:02 +0000 Resent-Message-ID: Resent-Sender: bug-gnu-emacs@gnu.org X-GNU-PR-Message: report 5773 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.126955718926411 (code B ref -1); Thu, 25 Mar 2010 22:47:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Mar 2010 22:46:29 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuvoq-0006rw-Jl for submit@debbugs.gnu.org; Thu, 25 Mar 2010 18:46:29 -0400 Original-Received: from mail.gnu.org ([199.232.76.166] helo=mx10.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuvoo-0006rr-3a for submit@debbugs.gnu.org; Thu, 25 Mar 2010 18:46:27 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:55513) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Nuvoj-0002xF-U1 for submit@debbugs.gnu.org; Thu, 25 Mar 2010 18:46:21 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nuvoj-00031S-By for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:46:21 -0400 Original-Received: from [140.186.70.92] (port=38265 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nuvmi-0001tN-6G for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:46:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nuvlv-00049p-T6 for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:43:29 -0400 Original-Received: from mailout2-3.pacific.net.au ([61.8.2.226]:40962 helo=mailout2.pacific.net.au) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuvlv-00049b-9n for bug-gnu-emacs@gnu.org; Thu, 25 Mar 2010 18:43:27 -0400 Original-Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.2.162]) by mailout2.pacific.net.au (Postfix) with ESMTP id 846CD1B2661 for ; Fri, 26 Mar 2010 09:42:38 +1100 (EST) Original-Received: from blah.blah (ppp2F42.dyn.pacific.net.au [61.8.47.66]) by mailproxy1.pacific.net.au (Postfix) with ESMTP id AA29E8C13 for ; Fri, 26 Mar 2010 09:42:37 +1100 (EST) Original-Received: from gg by blah.blah with local (Exim 4.71) (envelope-from ) id 1Nuvl9-0001Ri-Ts for bug-gnu-emacs@gnu.org; Fri, 26 Mar 2010 09:42:40 +1100 User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 25 Mar 2010 18:47:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:35759 Archived-At: --=-=-= If you re-run M-x vc-diff from a *vc-diff* buffer, it doesn't ask you to save the buffer being diffed the way that it does when operating from that buffer itself C-x C-f /some/file/under/vc/control C-x v = C-x o # edit the file's buffer a bit C-x o # back to the *vc-diff* C-x v = => doesn't ask about saving the edits I wonder also if vc-diff might offer to save the whole of its "fileset", something like below. Not that I'm not smart enough to diff more than one file at a time :-) Maybe `vc-update' could share this `vc-buffer-sync-fileset' too. I thought to use find-buffer-visiting instead of the way vc-update has `member' in its save-some-buffers, just in case there's symlinks making names look different. 2010-03-25 Kevin Ryde * vc.el (vc-buffer-sync-fileset): New function. (vc-diff): Use it to save all relevant file buffers no matter where run (not just the current buffer). --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=vc.el.diff-save.diff --- vc.el.~1.746.~ 2009-12-17 08:25:35.000000000 +1100 +++ vc.el 2010-03-24 10:43:14.000000000 +1100 @@ -1593,9 +1593,17 @@ (interactive (list current-prefix-arg t)) (if historic (call-interactively 'vc-version-diff) - (when buffer-file-name (vc-buffer-sync not-urgent)) - (vc-diff-internal t (vc-deduce-fileset t) nil nil - (called-interactively-p 'interactive)))) + (let ((fileset (vc-deduce-fileset t))) + (vc-buffer-sync-fileset fileset not-urgent) + (vc-diff-internal t fileset nil nil + (called-interactively-p 'interactive))))) + +(defun vc-buffer-sync-fileset (fileset not-urgent) + (dolist (filename (cadr fileset)) + (let ((buffer (find-buffer-visiting filename))) + (if buffer + (with-current-buffer buffer + (vc-buffer-sync not-urgent)))))) ;;;###autoload (defun vc-root-diff (historic &optional not-urgent) --=-=-= In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5) of 2009-09-14 on raven, modified by Debian configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS='' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_AU value of $XMODIFIERS: nil locale-coding-system: iso-latin-1-unix default-enable-multibyte-characters: t --=-=-=--