On Wed, Nov 25, 2015 at 2:30 PM, Jens Lehmann <Jens.Lehmann@xxxxxx> wrote: >> >> >> I like the concept of subgroups as it allows to have some control over >> subsubmodules you may want to aggregate from a third party via the >> middleman submodule. > > > That's the point (though maybe someone might come up with a better > name than "subgroups" ;-). And each repo configures its own submodule > groups. > >> I'd prefer to delay that feature though by not giving a high priority. > > > No problem, we can start with "check out all subsubmodules" for now. > But I suspect we'll need subgroups rather sooner than later. Oh! I thought we'd recursively propagate the groups, so the subsubmodules are checked to be either in groups or subgroups, and the subgroups are just a way to enhance the union of groups. > >> Also would you go with subsubgroups, too? When does the recursion >> end? > > > Subsubgroups do not make sense in the superproject, that can only > configure its direct submodules. > I think you are talking about the > groups of the subsubmodules, and these have to be chosen inside the > first level submodules via the subgroups of its submodules (which > are the second level submodules of the superproject). Still with > me? ;-) I believe so. > So the recursion can go on forever even as soon as we > implement the subgroup configuration. So lets say you have your meta collection repository, which looks like that: operating systems: ubuntu linux nonfree-game ... gentoo ... fedora ... android linux linux-build-configs vendor-phones nexus-family In the "operating systems" repo I have the submodules ubuntu and android marked via a group: "work-related". Now I want to specify to have the linux, linux-build-configs, and in there the nexus-family in the android repository. One way would be to have the "operating systems" repo to have subsubgroups specifying the groups in the submodules of linux-build-configs (3rd level of submodules). You seem to oppose that. The other way to do that, would be to have a fork of the android repo and put in the right subgroups to select for the right submodules in linux-build-configs. So forking and fixing the groups config would be the way to make changes from upstream. I personally would find it easier to have all the spec in the one superproject repository as then I don't need to update the forks. (the .gitmodules file would get some conflicts, in case of my fork there, so it's not easy to maintain long term) Is there yet another way to handle such a case of deeply nested submodules properly? > >> In case we have more than the union of groups, but also prohibitive >> >> terms available, could subgroups clash with the submodules groups spec? > > > Not that I'm aware of. Groups decide which submodules to update and > only for those submodules subgroups tell git what group to use inside > that submodule. And so on. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html