Subject: Re: bug#61038: 30.0.50; `project-query-replace-regexp' also attempts search and replace in auto-save files

From: Mickey Petersen <[email-masked]>
Date: Wed, 25 Jan 2023 20:34:07 +0000

Dmitry Gutov <[email-masked]> writes:

> On 25/01/2023 09:30, Mickey Petersen wrote:
>> Dmitry Gutov<[email-masked]>  writes:
>>
>>> On 24/01/2023 12:37, Mickey Petersen wrote:
>>>> I think it'd be more useful if auto-save files (or even backup files)
>>>> were excluded from all the various `project-' commands that operate on
>>>> project files.
>>> I think that depends on the project backend.
>>>
>>> The default implementation uses grep-find-ignored-files (which include
>>> auto-save files, I think?).
>>>
>>> But the vc-aware backend ignores generally what the repository
>>> configuration tells it to ignore. Which would generally include
>>> auto-save files as well, but that depends on factors external to
>>> Emacs.
>>>
>>> What kind of backend were you trying this command with?
>> Default git backend. However, I'd charge that Emacs should know about
>> its own backup files (and not necessarily those of other Emacs
>> instances that may be running.)
>
> It's hard for me to say what is TRT here. If we explicitly ignore
> backups, does that mean we should add compiled objects files, etc,
> that is, everything from grep-find-ignored-files?
>
> But I have configured my backups to be saved inside ~/.emacs.d/
> directory, like a lot of people recommend. Via backup-directory-alist.
>
> If you don't do that, and you have them saved side-by-side inside Git
> repository, don't you usually add .gitignore rules for them then?
>
> So that they don't get in the way of other operations, outside of Emacs.

(Actually this issue also afflicts auto-save files in my Emacs.)

And the files in question are not committed to the index, nor are they
part of the git tree. So they're just stray files that happen to be
important (backup, auto save) to Emacs.

It seems odd that you'd want to search and replace those by default,
particularly when Emacs is well aware of the fact that they are indeed
backups or auto saves of other files used by that instance of Emacs.

And yes indeed: why not make the project replace mechanism ignore dumb
things no one wants to edit.

And committing large, binary files to a tree is common in a wide range
of situations, though less so in Git, as it's terrible at it.

So, yes, `grep-find-ignored-files' (or a project.el equivalent) should
indeed exist.