Subject: Re: bug#67171: 30.0.50; (At least) some VC commands fail with project-prefix-or-any-command

From: Dmitry Gutov <[email-masked]>
Date: Thu, 7 Dec 2023 02:10:07 +0200

On 06/12/2023 17:09, Sean Whitton wrote:

>> Combined with
>>
>>    (put 'vc-print-root-log 'project-switch-with-default-directory t)
>>
>> somewhere in your init script.
>>
>> The alternative would be tagging all project-related commands. Even if we also
>> check for the 'project-' prefix in command's name, the user-defined commands
>> using the project API will be affected (I don't know for how many it would be
>> a problem, but still).
> 
> This solution makes sense.  We definitely want the user to have a way to
> tag additional commands.  But couldn't we pre-tag some, like this one,
> for example?  It is difficult to think of wanting to not have this one
> tagged.  And the user could always remove the tag in their init.

That would be a half-measure still. And why this command but not others? 
And if others too, then which ones?

It might seem natural to you, but it never occurred to add 
vc-print-root-log to project-prefix-map to me. What other commands would 
not occur to us both but would to others?

Would it make sense to tag all VC commands? Or just consider the 'vc-' 
prefix as a negative?

To consider the "alternative" approach once more, we could recognize the 
  'project-' commands as the ones that should use 
project-current-directory-override. But the rest would use 
default-directory, unless they have a property 'project-related' or 
something. That would exclude user-defined commands in the beginning, 
but then again, the difference between binding 
project-current-directory-override and default-directory might matter 
only to a small fraction of them.