GNU bug report logs - #77122
[PATCH] project--find-in-directory resolves symlinks

Previous Next

Package: emacs;

Reported by: Ship Mints <shipmints <at> gmail.com>

Date: Wed, 19 Mar 2025 16:56:04 UTC

Severity: normal

Tags: patch

Full log


Message #17 received at 77122 <at> debbugs.gnu.org (full text, mbox):

From: Ship Mints <shipmints <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 77122 <at> debbugs.gnu.org
Subject: Re: bug#77122: [PATCH] project--find-in-directory resolves symlinks
Date: Wed, 19 Mar 2025 13:18:49 -0400
[Message part 1 (text/plain, inline)]
On Wed, Mar 19, 2025 at 1:10 PM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Ship Mints <shipmints <at> gmail.com>
> > Date: Wed, 19 Mar 2025 12:55:09 -0400
> >
> > This avoids duplicate projects accessed via symlinks that share resolved
> directory locations.  This has
> > bothered me for a while, so here we go.
> >
> > From 074905ff365c6bcd7cbcf72e0158ae9db0908a20 Mon Sep 17 00:00:00 2001
> > From: shipmints <shipmints <at> gmail.com>
> > Date: Wed, 19 Mar 2025 12:50:28 -0400
> > Subject: [PATCH] project--find-in-directory resolves symlinks (bug#xxx)
> >
> > This avoids duplicate projects that share resolved directory locations.
> >
> > * lisp/progmodes/project.el (project--find-in-directory): Invoke
> > 'project-find-functions' on 'file-truename' resolved dir.
> > ---
> >  lisp/progmodes/project.el | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
> > index 4eac541167a..45f5328f6be 100644
> > --- a/lisp/progmodes/project.el
> > +++ b/lisp/progmodes/project.el
> > @@ -251,6 +251,10 @@ project-current
> >      pr))
> >
> >  (defun project--find-in-directory (dir)
> > +  "Invoke `project-find-functions' for DIR.
> > +DIR is resolved to its true name, 'chasing' symbolic links, to avoid
> > +duplicate projects that share resolved directory locations."
> > +  (setq dir (file-truename dir))
>
> That's not necessarily what the user will want, since it changes the
> name of the file (and potentially its directory as well).  If the file
> or the directory have some "magical" name that matters, this will
> backfire.
>
> I think it is better to detect the fact that two directories point to
> the same place via symlinks (e.g., with file-equal-p), and avoid
> duplication in that case, but without actually substituting the file's
> name by its truename.
>
> But of course the final word is for Dmitry.
>

I expect that (project-current) whether invoked when default-directory
points to a symlinked project or not, returns the same thing.  It's an
opaque value to users?
[Message part 2 (text/html, inline)]

This bug report was last modified 109 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.