
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.