Subject: bug#73718: 31.0.50; Severe performance issue with Tramp and project-mode-line-format

From: Ship Mints <[email-masked]>
Date: Wed, 9 Oct 2024 10:01:14 -0400

To be clearer, I've guarded project-try-vc with advice. Perhaps a user
option to enable the guard intrinsically would be better as everyone could
benefit. I have my own option variables doing this so I can enable it when
wanted.

Perhaps Ergus can give something similar a try and see if this solves his
immediate hanging concern.

Ergus, you should be able to just drop the below snippet in your init file
(or eval in *scratch*) and see if it works for you.

  (defun my/project-try-vc-advice (orig-fun dir)
    (or (vc-file-getprop dir 'project-vc)
        (if (file-remote-p dir)
            nil
          (funcall orig-fun dir))))
  (advice-add 'project-try-vc :around #'my/project-try-vc-advice))

On Wed, Oct 9, 2024 at 9:45 AM Ship Mints <[email-masked]> wrote:

> I've added file-remote-p guards in a variety of places specifically to
> avoid these issues.
>
> On Wed, Oct 9, 2024 at 9:39 AM Dmitry Gutov <[email-masked]> wrote:
>
>> Hi!
>>
>> On 09/10/2024 13:43, Ergus via Bug reports for GNU Emacs, the Swiss army
>> knife of text editors wrote:
>> > I made a profile and it looks like there is some bad interaction between
>> > project-mode-line and tramp names
>> >
>> > I already tried:
>> >
>> > (connection-local-set-profile-variables 'my-profile
>> '((project-mode-line . nil)))
>> > (connection-local-set-profiles '(:application tramp :user "myuser")
>> 'my-profile)
>> >
>> > But is not disabling the modeline for remote files.
>>
>> I wonder if we'll need to disable project-mode-line in remote files
>> altogether, or if this is a problem that could be solved in Tramp (with
>> extra caching?)
>>
>> To use connect-local value to disable, BTW, it would need to have extra
>> code called from the mode line format (in bindings.el). And it's a part
>> that was added only recently, for in Emacs 30.
>>
>>
>>
>>