Another issue is people working on monorepos (often backed by Git) sometimes want to split them into separate projects. Either because they only work on a certain part of the whole project, or because they want to use Eglot, and that package has tied LSP roots detection to project roots (but the language server might expect some project configuration files in the root which reside in a subdirectory). Here's a typical question/request for this functionality: https://emacs.stackexchange.com/questions/58463/project-el-override-project-root-with-dir-local-var/58468 Patch attached, it adds new user option project-vc-subprojects which alters the root-finding logic and cuts out the subproject contents from the parent project with the mechanism of "ignores". 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). Again, thoughts welcome.