bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#64088: [PATCH] Make project-root for vc projects return an absolute


From: Dmitry Gutov
Subject: bug#64088: [PATCH] Make project-root for vc projects return an absolute path
Date: Wed, 23 Aug 2023 03:24:02 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 19/08/2023 15:57, sbaugh@catern.com wrote:
Meaning it will be called N times (for the number of projects) every
time the list is displayed, instead of just once, when the project is
saved/visited. But maybe it's fine too? How slow could that be?
I was sad about this but I think I've got the solution now: We just
maintain project--list in abbreviated form and project-list-file in
expanded form.

Here's something else I thought of: project--write-project-list is called every time a different project is returned by (project-current t) -- i.e. when MAYBE-PROMPT=t, and when the found dir is not at the top of the project history already.

So under certain conditions (slow CPU/spinning media/long project history) it might slow down (project-current t) calls. In my testing it's totally fine, though, and there are possible mitigations (limit the history and/or move saving to kill-hook). Just something to keep in mind.

I think that solves all the problems: the persistent file is independent
of user configuration, so if the user changes their abbreviations
they'll get new ones the next time the file is read (presumably the next
time they run Emacs).  But project--list is abbreviated, so
project-prompt-project-dir gets abbreviated dirs.

It does mean that if they change their directory-abbrev-alist while
Emacs is running they could get duplicate entries, but that already
could happen before this patch, and it's not a big problem IMO.

See patch below.
Oops, this patch needed a few tweaks.  Especially, skipping the
expansion and abbreviation for remote files, to avoid making unnecesary
remote connections.

Thanks! Pushed to master, and finally closing ;-)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]