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

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

Re: project.el project-find-files and symlinks


From: Juris
Subject: Re: project.el project-find-files and symlinks
Date: Sat, 12 Jun 2021 21:10:17 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Hi!

On 24.05.21 04:01, Dmitry Gutov wrote:
Hi!

On 21.05.2021 14:57, Juris Bune wrote:
Hello!

I've been using emacs for few months now and slowly building up my skill and knowledge of ecosystem. It has been great so far.

Recently I started using project.el (v0.6) and found one annoying thing - project-find-files does not include file symlinks. I understand that it is due to fact that under the hood it uses GNU find and current implementation of project--files-in-directory has a somewhat hard-coded values for find flags.

To solve my case I would add "-L" option appropriately to have find utility list also symlinks. Unfortunately this is not configurable without (as I understand) changing package.el. Are there any other options?

You can try out a patch like

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index eab60756c8..616c6f8d32 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -297,7 +297,7 @@ project--files-in-directory
           ;; expanded and not left for the shell command
           ;; to interpret.
          (localdir (file-name-unquote (file-local-name (expand-file-name dir))))
-         (command (format "%s -H %s %s -type f %s -print0"
+         (command (format "%s -H -L %s %s -type f %s -print0"
                            find-program
                            (shell-quote-argument
                             (directory-file-name localdir)) ; Bug#48471

and see if you like the effect. I'm not sure how to make it better configurable, though. The current literal that's used looks like

   "%s -H -L %s %s -type f %s -print0"

...and that's not something a random user will know how to change safely. It's also very find-specific.

Thanks for the tip Dmitry, I did try this and it does solve my complaint. The downside being that I have to manage a patches project.el and track upstream changes manually. Surely some easy configuration would be a welcome change but, I also understand your stance.


I suppose you'd also want the project-vc backend (e.g. in Git repos) to follow symlinks as well?

Hmmm, that would be yes.


I also wonder whether there have been any discussions in the past about adding -L to grep-find-template.

Also, would it be somehow possible to make project.el use fd <https://github.com/sharkdp/fd> instead of find?

People have asked about this before. Please read:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44210#26

...and email to the bug address if you'd like to contribute to that discussion.

Thanks again!
Juris



reply via email to

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