BitKeeper's nested repositories
Created on 2022-08-02T06:48:23-05:00
Product line: one or more products which may share components.
Product: a repository which is comprised of many smaller components.
Component: an individual thing kept in its own repository.
Gates: a full/sparse collection which does not roll back or unpopulate; can be trusted to obtain missing modules.
Portals: a gate which is always a full collection.
Basically submodules with more intelligible programming. A "product" owns one or more "components" which is basically a master repo that signals it has a relationship with those external repositories.
A product is cloned and only certain submodules are taken out with it. When updates are made to any of the components the commit is gated across all components as though it were a monorepo.
Components can be used by multiple projects. Not real sure how that works. There is talk that components are "ported" from other products which basically means rebase/merge with the version of the component lensed to your product.