Search code examples
gitgithubmercurialgitoliteassembla

How to keep/maintain public and private code in the same repository? (at repository hostings)


I'm working on my own project which has two parts:

A. kernel/generic code (public part)

B. code which works with proprietary protocol etc (private part, available for me and a few authorized persons)

I want repository hosting (maybe github, assembla, ...) which allows working in public and private branches in the same repository.

I don't want two repositories because I'm actively working on both parts and I want to avoid diverged repositories.

Which solution is available for me?


Solution

  • which allows working in public and private branches in the same repository.

    That doesn't seem compatible with how Git works: if you have access to a repo, you can clone all its content (including the branches).

    A Git Hosting service like BitBucket or GitLab allows you to protect a branch (meaning you cannot push back). But you would still be able to see its content.
    Even Gitolite doesn't prevent read-access at a branch level.

    So two separate repos are still the best approach, with the repo A (kernel) declared as a submodule of repo B.