On 26/9/21 03:22, Dmitry Gutov wrote: > Another issue is people working on monorepos (often backed by Git) > sometimes want to split them into separate projects. The latter > capability (excluding subproject's files) informed the choice of the > approach. Which is altering the vc project backend's behavior, rather > that offering this feature through another backend, like the one added > in the previous patch, for example. > > I don't know if all users of this feature will want them excluded, > though. The attached implementation does, and maybe another option could > be added to disable this. > > Or we could drop this part of the behavior, insisting that users who > want it could add the corresponding entries to project-vc-ignores. This > way they would be listing the subprojects twice, however. And the > project-vc-merge-submodules=nil behavior matches the other option > (submodule files are excluded from the parent). Here's a third approach, which now seems to me the most approachable. It solves the semantic problems by having the new "plain" projects also belong to the same type (which is still called project-vc, but means something more now). The backend's variables are adhered to, and 'git ls-files' is used for file listing in Git-backend subprojects still. The subprojects' files are not excluded from the parent project, but as long as the format of markers stays with wildcards, it at least remains feasible to do, though with some extra expense at runtime. We'll see if people really want this. It will probably also improve performance over Tramp compared to the current. Does this work for everybody?