From: Dmitry Gutov <dgutov@yandex.ru>
To: Juri Linkov <juri@linkov.net>
Cc: Eli Zaretskii <eliz@gnu.org>,
Augusto Stoffel <arstoffel@gmail.com>,
58447@debbugs.gnu.org
Subject: bug#58447: [PATCH] In project-find-file, add absolute file name to history
Date: Thu, 15 Dec 2022 15:54:58 +0200 [thread overview]
Message-ID: <eb590368-8632-7a26-4d63-673b04ce708b@yandex.ru> (raw)
In-Reply-To: <86o7s5i1ec.fsf@mail.linkov.net>
On 15/12/2022 09:24, Juri Linkov wrote:
>> The patches could be combined, but v1 seems to be too invasive for
>> emacs-29, yet v2 could be just small enough to be considered "bugfix-only".
>>
>> So, what does everyone think about the latter?
>>
>> If people agree that the v2 patch is an improvement, we can check it in and
>> leave project-local histories until later.
>
> Does the second patch allow such workflows as re-visiting
> the same relative filenames in another directory?
Not really; it filters by project root (more or less).
As long as we have global history, it's hard to extract the relative
names for it, if they belong to a different directory tree.
But the history storage seems to retain text properties. So I suppose
one option would be to annotate the "relative" part with a text
property, before adding the string to history. And then look up the text
property later.
> IMHO, the safest fix for emacs-29 would be to add relative filenames
> to the separate history. If someone might want to use
> 'file-name-history', then a new variable could be added like
> 'query-replace-from-history-variable'. Then this variable
> could be customized to 'file-name-history', or nil.
>
> It's needed only when 'project-read-file-name-function'
> is 'project--read-file-cpd-relative'.
It can work, but having a user option that only works for
project--read-file-cpd-relative is pretty awkward. Beginning with having
to choose its name.
If we do this, I'd rather that happens on master, and we choose
something smaller for emacs-29.
And the text property trick above could both "store" the relative
history and also keep adding entries to 'C-x C-f'.
> But please also note that its value 'project--read-file-absolute'
> is also broken. It asks confirmation for re-visiting even absolute
> filenames, because currently 'C-x p f' adds abbreviated filenames,
> but confirmation checks for absolute.
Does the breakage show itself only when you add a history entry using
one value of project-read-file-name-function and then try to look it up
when using another value of project-read-file-name-function?
If so, that's probably bearable enough for now (people don't really
change this value often). Fixing it will require resolving the
abbreviation situation. And we might as well switch to relative names in
project-files first.
next prev parent reply other threads:[~2022-12-15 13:54 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-11 18:29 bug#58447: [PATCH] In project-find-file, add absolute file name to history Augusto Stoffel
2022-10-11 19:13 ` Eli Zaretskii
2022-10-26 9:04 ` Augusto Stoffel
2022-10-27 8:44 ` Dmitry Gutov
2022-10-27 13:15 ` Eli Zaretskii
2022-10-27 14:21 ` Dmitry Gutov
2022-10-27 14:26 ` Augusto Stoffel
2022-10-27 15:36 ` Dmitry Gutov
2022-10-27 15:56 ` Augusto Stoffel
2022-10-27 16:07 ` Dmitry Gutov
2022-10-27 15:52 ` Eli Zaretskii
2022-10-27 16:10 ` Dmitry Gutov
2022-10-27 16:37 ` Augusto Stoffel
2022-10-27 16:48 ` Dmitry Gutov
2022-10-27 16:53 ` Augusto Stoffel
2022-10-27 17:34 ` Dmitry Gutov
2022-10-27 17:48 ` Augusto Stoffel
2022-10-27 18:05 ` Dmitry Gutov
2022-10-27 18:12 ` Augusto Stoffel
2022-10-27 19:51 ` Dmitry Gutov
2022-10-27 19:41 ` Juri Linkov
2022-10-28 18:11 ` Dmitry Gutov
2022-10-29 17:45 ` Juri Linkov
2022-10-30 19:42 ` Dmitry Gutov
2022-10-31 8:06 ` Augusto Stoffel
2022-11-01 17:30 ` Juri Linkov
2022-11-01 22:14 ` Dmitry Gutov
2022-11-18 16:28 ` Augusto Stoffel
2022-11-25 13:39 ` Eli Zaretskii
2022-11-26 2:28 ` Dmitry Gutov
2022-11-28 22:58 ` Augusto Stoffel
2022-11-29 16:29 ` Dmitry Gutov
2022-12-09 7:38 ` Juri Linkov
2022-12-09 13:00 ` Dmitry Gutov
2022-12-10 17:27 ` Juri Linkov
2022-12-10 19:50 ` Dmitry Gutov
2022-12-11 17:57 ` Juri Linkov
2022-12-11 18:14 ` Dmitry Gutov
2022-12-12 17:41 ` Juri Linkov
2022-12-12 18:49 ` Augusto Stoffel
2022-12-13 17:28 ` Juri Linkov
2022-12-14 16:47 ` Augusto Stoffel
2022-12-14 18:45 ` Dmitry Gutov
2022-12-14 19:32 ` Augusto Stoffel
2022-12-14 23:04 ` Dmitry Gutov
2022-12-15 7:24 ` Juri Linkov
2022-12-15 11:07 ` Augusto Stoffel
2022-12-15 14:04 ` Dmitry Gutov
2022-12-15 13:54 ` Dmitry Gutov [this message]
2022-12-15 17:24 ` Juri Linkov
2022-12-15 22:20 ` Dmitry Gutov
2022-12-16 7:48 ` Juri Linkov
2022-12-18 0:32 ` Dmitry Gutov
2022-12-15 11:07 ` Augusto Stoffel
2022-12-15 14:08 ` Dmitry Gutov
2022-12-15 17:21 ` Juri Linkov
2022-12-15 22:50 ` Dmitry Gutov
2022-12-18 8:36 ` Juri Linkov
2022-12-18 11:51 ` Dmitry Gutov
2022-12-19 17:55 ` Juri Linkov
2022-12-19 18:01 ` Eli Zaretskii
2022-12-19 19:48 ` Juri Linkov
2022-12-19 20:00 ` Eli Zaretskii
2022-12-19 19:18 ` Dmitry Gutov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eb590368-8632-7a26-4d63-673b04ce708b@yandex.ru \
--to=dgutov@yandex.ru \
--cc=58447@debbugs.gnu.org \
--cc=arstoffel@gmail.com \
--cc=eliz@gnu.org \
--cc=juri@linkov.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).