Skip to content

[Heretical idea] Break linearity

Talking with @dimitrieh about https://gitlab.com/gitlab-org/gitlab-ce/issues/18439, he asked if you could just drag/drop a merge request from staging to production. I laughed and said it was impossible. Then realized the genius of the question! What if you COULD treat merge requests as atomic objects that you could just drag/drop into and out of various environments.

Normally if you want to deploy something that has been merged into master, you'd have to also deploy everything that has been merged since then. If you deploy 5 MRs in sequence, if you wanted to revert MR gitlab-ce#3, you'd have to revert 4 and 5 too. But what if you didn't have to. You pull gitlab-ce#3 out, and it magically reverts just the localized changes, cherry-picking as needed.

Break linearity. What if we could pull MRs into staging, one at a time. Then pull them into production, and out of production. Don't need feature flags. Don't need rollback. Don't need review apps. Just pull a MR into a staging site, take a look, then pull it out.