|
From: | GNU bug Tracking System |
Subject: | bug#51622: closed (29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name') |
Date: | Tue, 16 Nov 2021 11:44:02 +0000 |
Your message dated Tue, 16 Nov 2021 12:43:46 +0100 with message-id <87fsrw2uml.fsf@gmx.de> and subject line Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' has caused the debbugs.gnu.org bug report #51622, regarding 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs@gnu.org.) -- 51622: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=51622 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems
--- Begin Message ---Subject: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' Currently, `abbreviate-file-name' abbreviates home directories, but only for the local system. For example: Date: Fri, 5 Nov 2021 20:44:44 -0700 $ emacs -Q M-: (abbreviate-file-name "/home/jim/src") RET ;; => "~/src" M-: (abbreviate-file-name "/sshx:localhost:/home/jim/src") RET ;; => "/sshx:localhost:/home/jim/src"It'd be nice to abbreviate TRAMP home dirs, especially for the buffer list, where the long length of TRAMP paths means that I often just see the same leading bits of the paths repeated in the File column. As a result, it can be hard to tell the exact file it refers to. (Of course, as a workaround, I could just widen the window.)Attached is a patch series to do this, but the patches probably warrant some explanation. First, I removed `automount-dir-prefix'; it's been obsolete since 24.3, and it would have made implementation of the second part more complex.Second, I removed the caching of the abbreviated home dir. Since adding TRAMP support means there are multiple home dirs (one per host), keeping the caching would have been fairly complex, and it's already the source of potential bugs (e.g. when temporarily setting HOME to something else). I did some benchmarking on this (see attached), and while it is indeed slower without the caching, I don't think it's worth keeping the caching around. The real performance cost comes from calling `abbreviate-file-name' with a TRAMP file (even before my patch), but abbreviating a local file is quite fast, even with a pathologically large `directory-abbrev-alist'. I also wrote a couple of unit tests to make sure this function works correctly.Finally, I added the actual TRAMP support. This has a pretty significant performance hit to TRAMP files. Looking at profiles, this appears to be because my patch calls both `file-name-case-insensitive-p' and `file-remote-p' on the TRAMP path, and these duplicate quite a bit of work. Is there a way to make this more efficient (e.g. by getting the file handler just once instead of twice)? It might also be useful to add some unit tests here, but I wasn't 100% sure how to do that with TRAMP paths (the tests in my benchmark actually open an SSH connection, so that probably won't work on all systems).In addition to the patches, I've also attached a simple benchmark script that I used to measure the performance of these patches as well as the results from my system. The performance for local paths is still quite good I think, and even the worst-case scenario for TRAMP paths (abbreviating with a 500-item `directory-abbrev-alist') clocks in at 4.6ms per call. It'd be nice to make that faster, but maybe that's the best we can do if we want this feature.0001-Remove-automount-dir-prefix.patch
Description: Text document0002-Don-t-cache-abbreviated-homedir-for-abbreviate-file-.patch
Description: Text document0003-Abbreviate-home-directory-for-remote-files.patch
Description: Text documentbenchmark.el
Description: Text documentbenchmark-results.txt
Description: Text document
--- End Message ---
--- Begin Message ---Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' Date: Tue, 16 Nov 2021 12:43:46 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Version: 29.1 Jim Porter <jporterbugs@gmail.com> writes: Hi Jim, >> I tend to close this bug report now, since everything reported has been >> implemented. The open points don't need this bug anymore for progress. >> WDYT? > > Sounds good to me, we can close this. Thanks for the feedback, closing the bug. Best regards, Michael.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |