GitLab Installation and Updates
Why GitLab uses one codebase for Community & Enterprise

Why GitLab uses one codebase for Community & Enterprise

8/23/2019 · Yorick Peterse

What this post added

This post details the decision and technical approach to merge GitLab Community Edition (CE) and Enterprise Edition (EE) into a single codebase. It explains the challenges of maintaining separate repositories, the complexity introduced by merge requests across repositories, and the decision to consolidate into a single repository. The technical solution involved separating proprietary code from shared code using Ruby modules and injection, refactoring large code chunks, and ensuring database schema consistency. The chosen approach was to move all development into the gitlab-ee repository, renaming it to 'gitlab', and archiving gitlab-ce. gitlab-foss will serve as a mirror of the new 'gitlab' repository with proprietary code automatically removed. This involved 55 engineers, over 600 merge requests, and changes to nearly 1.5 million lines of code.

Read the original post ↗