unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: Eli Zaretskii <eliz@gnu.org>
Cc: sbaugh@janestreet.com, 63829@debbugs.gnu.org
Subject: bug#63829: 29.0.90; project-find-file's future history breaks with common-parent-directory
Date: Sat, 3 Jun 2023 16:48:55 +0300	[thread overview]
Message-ID: <9406d283-967a-85c6-d8db-5b9c9912a46f@gutov.dev> (raw)
In-Reply-To: <83o7lw90ev.fsf@gnu.org>

On 03/06/2023 15:48, Eli Zaretskii wrote:

>> Do you like the patch I posted? It could be considered somewhere in that
>> direction.
> 
> I don't know enough about the details to have opinion of any
> importance.  But if the change goes in the direction I thought we
> should go, then that's good.
> 
>> Should it go to emacs-29 or master?
> 
> Unless this is a bad problem, I'd prefer that the change goes to
> master.

Maybe it's not too serious, given that it requires the user to invoke 
"future history" (not everybody knows of it), and for the project to 
have all files in one subdirectory.

>>>> (As a separate point: I ran into this while adding a feature for
>>>> switching between projects with similar directory structures.  I want to
>>>> include the relative path in the starting project in the "future
>>>> history", so that when you have a file in projectA open, you can switch
>>>> to the same file in projectB with C-x p p f M-n RET.  For example,
>>>> switching between the same file in multiple clones of Emacs.  But sadly
>>>> the future history doesn't work properly right now even in a single
>>>> project)
>>>
>>> Once again, this should work by using the right value of
>>> default-directory; having relative filenames in the history up front
>>> is not TRT.  Relative file names in Emacs are always interpreted
>>> relatively to default-directory, so if you start using relative names
>>> disregarding default-directory, you will eventually run into trouble,
>>> as various file-related primitives will fail with ENOENT.
>>
>> The problem here is that is a different/new scenario where Spencer wants
>> to have a file name from one project be applied to another project. It
>> seems like using absolute names would rather go in the opposite direction.
> 
> If some command wants to produce file names in a different directory,
> then that command should do something like
> 
>     (expand-file-name (file-name-nondirectory FILENAME) NEW-DIRECTORY)
> 
> The code which produces the original FILENAME should still produce an
> absolute file name (or record its directory in some other way); it
> should not know/assume anything about potential uses of that file
> name.

Sounds like Spencer's last patch. It's not too great that we'll make 
project-find-file aware of project-current-directory-override, though.





  reply	other threads:[~2023-06-03 13:48 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-01 22:32 bug#63829: 29.0.90; project-find-file's future history breaks with common-parent-directory Spencer Baugh
2023-06-02  6:47 ` Eli Zaretskii
2023-06-03 12:19   ` Dmitry Gutov
2023-06-03 12:48     ` Eli Zaretskii
2023-06-03 13:48       ` Dmitry Gutov [this message]
2023-06-03  2:30 ` Dmitry Gutov
2023-06-03 11:00   ` Spencer Baugh
2023-06-04 16:36     ` Juri Linkov
2023-06-06  1:40       ` Dmitry Gutov
2023-06-06 15:55         ` Spencer Baugh
2023-08-10 12:02           ` sbaugh
2023-08-12  1:23           ` Dmitry Gutov
2023-08-14 20:12             ` Spencer Baugh
2023-08-14 22:47               ` sbaugh
2023-08-16  1:49                 ` Dmitry Gutov
2023-08-16  2:57                   ` sbaugh
2023-08-17  2:14                     ` Dmitry Gutov
2023-08-17 19:41                       ` Spencer Baugh
2023-08-17 20:12                         ` Spencer Baugh
2023-08-18 20:57                           ` Spencer Baugh
2023-08-19  2:14                             ` Dmitry Gutov
2023-08-20 17:23                             ` Juri Linkov
2023-08-20 17:16                           ` Juri Linkov
2023-08-21  1:15                             ` Dmitry Gutov
2023-08-23  2:13                           ` Dmitry Gutov
2023-08-19  2:08                         ` Dmitry Gutov
2023-08-19 12:00                           ` sbaugh
2023-08-21  1:51                             ` Dmitry Gutov
2023-08-20 17:20                         ` Juri Linkov
2023-08-21  1:43                           ` Dmitry Gutov
2023-08-21  7:06                             ` Juri Linkov
2023-08-23  0:37                               ` Dmitry Gutov
2023-08-23  2:26                         ` Dmitry Gutov
2023-08-23 17:52                           ` Juri Linkov
2023-08-23 18:25                             ` Dmitry Gutov
2023-08-20 17:13                       ` Juri Linkov
2023-08-21  1:17                         ` Dmitry Gutov
2023-08-21  6:58                           ` Juri Linkov
2023-08-23  0:27                             ` 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=9406d283-967a-85c6-d8db-5b9c9912a46f@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=63829@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=sbaugh@janestreet.com \
    /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).