At GitLab we'll tell you to make small merge requests, review and merge often. But in the real world, you have to build a complex feature that requires weeks and thousands of changes.
How can you still have all the advantages of code review, without actually merging a half-baked feature? You make it WIP.
WIP First
WIP, short for Work In Progress, is what you prepend to a merge request in
GitLab, preventing your work from being merged.
Next time you're working on a big feature, create a merge request after the
very first commit and give it a title starting with either WIP
or [WIP]
.
Mention your colleague for a first review, while you keep on working. You have all the power of a merge request, including GitLab CI that checks your code while you work, and no risk of an accidental merge.
WIP mentality
By opening a merge request at the earliest chance, you use one of open source's most powerful tools: the opportunity for feedback.
Your colleagues might not be bothered to do a deep review of unfinished code, but even a glance can catch potential mistakes. Having a second set of eyes thinking about the problems you're solving always pays off.
I encourage you to extend this mentality to your other work, projects and pushes. Push something out early to receive feedback and to be steered in the right direction early on.
At GitLab Inc
At GitLab we prefer people to push things out quickly. We work with WIP merge requests for complex features, like the upcoming Elastic Search implementation.
Meanwhile, we encourage everyone to make decisions and changes as they think is appropriate. By sharing early on, collaboration is almost automatic.