Subject: bug#41572: 28.0.50; [PATCH] Support plain project marked with file .emacs-project

From: Dmitry Gutov <[email-masked]>
Date: Mon, 28 Nov 2022 14:30:15 +0200

On 28/11/2022 13:58, Eli Zaretskii wrote:

>>>> Like the patch also says (and what's given me a pause in the past), that
>>>> also makes "VC project" somewhat a misnomer. But I'm not sure what to
>>>> call them better
>>> How about VC-backed project?
>>
>> Is that different?
> 
> I don't know.  You asked for alternatives, and that is what I could think
> of.
> 
>> I would say it might be worse: "VC-backed" sounds
>> like a project that must correspond to a VC repository (be "backed" by it).
> 
> It usually is, isn't it?

Usually -- yes, the default ootb configuration will have projects backed 
by VC repositories, because the default set of markers is determined by 
the value of 'vc-handled-backends'.

But now the users will be able to extend that set of markers through 
customization.

> If it doesn't have to, then we should look for a different name ASAP, one
> that doesn't include "VC" at all.

I haven't been able to come up with anything more concrete than 
"builtin", and that's both a non-name and not exactly true since 
'transient' also exists. But "VC aware" might also fit the bill. It 
sounds more like an adjective, though, than a proper noun.

>> OTOH a new term we could use would stand for something like: a project
>> type which will recognize the enabled kinds of VC repositories and use
>> their roots as project root, and knows how to use certain VC systems to
>> speed up the fetching of files, and knows about Git submodules, but also
>> recognizes other directories (inside or outside of VC repositories)
>> based on configurable conditions.
> 
> If this type of project doesn't have to be "backed by a VCS", then what does
> distinguish it from other types of projects?

It difficult to come up with a name using a principle like that when the 
preceding effort was made to be able to accommodate the projects of 
different users with new usage patterns.

It is "VC aware" or maybe "VC friendly", and it works with projects in 
the shape of directory trees. But both characterizations can apply to 
e.g. Projectile as well. Except the latter is probably more flexible, 
and our backend is probably faster, especially over Tramp.

But if we just compare with the other builtin ('transient'), then its 
VC awareness is probably the key thing. And the customization options it 
has (which 'transient' doesn't).