release the mergetopus!
Have you ever started a merge where you found yourself having to resolve 100 conflicts that would require specific domain knowledge (from coworkers)? Well, I got your back: now you can “mergetopus HERE” to split the remainder of the merge into chewable chunks and actually do a distributed, collaborative merge. YAY!
Meet mergetopus.
The idea is simple: instead of one giant merge session where everything blocks on a single person, you split it into pieces. mergetopus creates an integration branch for everything that merges cleanly and then lets you group the remaining conflicts into slices - small, independent branches that different people can resolve in parallel.
Everyone works on their slice with whatever merge tool they prefer, commits it, and moves on. mergetopus status shows what’s done and what’s still pending. Once all slices are merged back, it creates a kokomeco branch - a consolidated merge snapshot that keeps proper ancestry so git blame still works correctly.
# already started a merge and hit conflicts? hand over the rest:
mergetopus HERE
# or...
# intentionally init the mergetopus workflow from your target branch:
mergetopus feature/very-large-change
# then
# push so the team can collaborate:
mergetopus push origin
# each dev resolves a slice:
mergetopus resolve _mmm/main/feature_very-large-change/slice1
# check who's done what:
mergetopus status
# clean up when everything's merged:
mergetopus cleanup
It’s written in Rust, works on Windows/macOS/Linux, has a TUI for interactive use and a --quiet mode for CI/CD. There’s also mergetopus HERE if you already started a manual git merge and want to hand the remaining conflicts over to the workflow.
The “kokomeco” name stands for KOrrekt KOnsoliderter MErge COmmit - because you know, solving a massive problem via German engineering 😉
Check it out at github.com/mwallner/mergetopus - it’s still early days but it already handles real LTS cascade merges with proper authorship preservation.
~ till next time