There is software distribution type, when one version is opensource and other is enterprise version. Enterprise version is proprietary, but based on opensource version of software. For example, GitLab CE and GitLab EE
I suppose, that would be just two git (or other VCS) repositories, and developers doing one way merge every time: opensource to EE + unique commits to EE, but not sure..
How to do this right, better?