unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





  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).