From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dan Nicolaescu Newsgroups: gmane.emacs.bugs Subject: bug#3224: 23.0.92; vc-dir vs uniquify: wrong directory used Date: Thu, 7 Jan 2010 07:10:15 -0800 (PST) Message-ID: <201001071510.o07FAFip016867@godzilla.ics.uci.edu> References: <84my9rfuhg.fsf@linux-b2a3.site> <200908041230.n74CUQUd025123@godzilla.ics.uci.edu> Reply-To: Dan Nicolaescu , 3224@debbugs.gnu.org NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1262877801 28662 80.91.229.12 (7 Jan 2010 15:23:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 7 Jan 2010 15:23:21 +0000 (UTC) Cc: 3224@debbugs.gnu.org To: Juanma Barranquero Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jan 07 16:23:13 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.50) id 1NSuCe-0005Ic-Ne for geb-bug-gnu-emacs@m.gmane.org; Thu, 07 Jan 2010 16:23:13 +0100 Original-Received: from localhost ([127.0.0.1]:38136 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NSuCf-0002YO-6k for geb-bug-gnu-emacs@m.gmane.org; Thu, 07 Jan 2010 10:23:13 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NSu8g-0008PJ-1A for bug-gnu-emacs@gnu.org; Thu, 07 Jan 2010 10:19:06 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NSu8Z-0008LM-Kw for bug-gnu-emacs@gnu.org; Thu, 07 Jan 2010 10:19:03 -0500 Original-Received: from [199.232.76.173] (port=54783 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NSu8Z-0008L3-BG for bug-gnu-emacs@gnu.org; Thu, 07 Jan 2010 10:18:59 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:58189) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NSu8X-0003ut-G9 for bug-gnu-emacs@gnu.org; Thu, 07 Jan 2010 10:18:57 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1NSu0s-0007Kt-KC; Thu, 07 Jan 2010 10:11:02 -0500 X-Loop: bug-gnu-emacs@gnu.org Mail-Followup-To: Dan Nicolaescu , 3224@debbugs.gnu.org Resent-From: Dan Nicolaescu Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 07 Jan 2010 15:11:02 +0000 Resent-Message-ID: Resent-Sender: bug-gnu-emacs@gnu.org X-Emacs-PR-Message: followup 3224 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 3224-submit@debbugs.gnu.org id=B3224.126287703028186 (code B ref 3224); Thu, 07 Jan 2010 15:11:02 +0000 Original-Received: (at 3224) by debbugs.gnu.org; 7 Jan 2010 15:10:30 +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 1NSu0L-0007KZ-LQ for submit@debbugs.gnu.org; Thu, 07 Jan 2010 10:10:29 -0500 Original-Received: from paul-mcgann-v0.ics.uci.edu ([128.195.1.147]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NSu0K-0007KT-0I for 3224@debbugs.gnu.org; Thu, 07 Jan 2010 10:10:28 -0500 Original-Received: from godzilla.ics.uci.edu (godzilla.ics.uci.edu [128.195.10.101]) by paul-mcgann-v0.ics.uci.edu (8.13.8/8.13.8) with ESMTP id o07FAFhf005243 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 7 Jan 2010 07:10:15 -0800 Original-Received: (from dann@localhost) by godzilla.ics.uci.edu (8.13.8+Sun/8.13.6/Submit) id o07FAFip016867; Thu, 7 Jan 2010 07:10:15 -0800 (PST) In-Reply-To: (Juanma Barranquero's message of "Thu, 7 Jan 2010 12:14:01 +0100") Original-Lines: 67 X-ICS-MailScanner-Information: Please send mail to helpdesk@ics.uci.edu or more information X-ICS-MailScanner-ID: o07FAFhf005243 X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-1.363, required 5, autolearn=disabled, ALL_TRUSTED -1.44, TW_BZ 0.08) X-ICS-MailScanner-From: dann@godzilla.ics.uci.edu X-Spam-Score: -2.5 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list X-Spam-Score: -2.5 (--) Resent-Date: Thu, 07 Jan 2010 10:11:02 -0500 X-detected-operating-system: by monty-python.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:34035 Archived-At: Juanma Barranquero writes: > On Wed, Jan 6, 2010 at 15:28, Stefan Monnier wrote: > > > AFAIK it already *does* the right thing (try it with Dired buffers, > > since these are the (only?) ones that should have a directory name), > > unless maybe we don't agree on what is the right thing in that case. > > The dired and vc-dired cases are not exactly equivalent. In the dired > case, uniquify-buffer-file-name is called when there's a conflict like > > (dired "/my/dir-1/A") > (dired "/my/dir-2/A") > > (because /my/dir/A vs my/dir/B obviously does not produce any conflict). > > In this case, u-b-f-n gets, via `list-buffers-directory', the full > path including the A: /my/dir1/A, and strips the last element and > returns /my/dir1. That works for uniquify, because it will be getting > path elements from /my/dir1 vs. /my/dir2, just as it needs. The > resulting buffers (with forward syntax) will be "A|dir-1" and > "A|dir-2". > > In the OP's vc-dir case, the conflicts happens in this: > > (vc-dir "/my/dir/A") > (vc-dir "/my/dir/B") > > because the conflict uniquify tries to solve is at the buffer-name > level, which is always *vc-dir*. /my/dir/A and /my/dir/B are > directories, and so elements for uniquifying; the expected result is > "*vc-dir*|A" and "*vc-dir*|B". However, u-b-f-n gets "/my/dir/B" (via > list-buffers-directory), which is correct, and again strips the last > element and returns "/my/dir". So uniquify ends producting > "*vc-dir*|A" and "*vc-dir*|dir", which is incorrect. > > Now, if you consider than always removing an element from BUFFER is > the right thing to do for u-b-f-n, we'll have to agree to disagree; > IMHO, that's not what its docstring says. From it, I would expect > u-b-f-n to return a directory unchanged. That said, my "fix" to > u-b-f-n would break uniquifying of dired buffers (thanks for pointing > that out), so perhaps we'll have to live with such behavior. In that > case, I'd suggest reworking the docstring of u-b-f-n. > > Going with your proposed fix via `list-buffers-directory', the > following patch works. I have not added a comment to the change to > `list-buffers-directory' because I don't really know how to explain > it; it seems a hack to me to force a variable named > `list-buffers-directory' to contain a bogus name part just to help > uniquify. > > Comments? Dan, what do you think? Does it work if you have multiple *vc-dir* buffers for the same directory? Do something like: mkdir /tmp/test cd /tmp/test git init bzr init C-u C-x v d /tmp/test RET Bzr RET C-u C-x v d /tmp/test RET Git RET I'm fine with it if you convince Stefan this is TRTD.