Detect clashes between branches early and resolve them before you merge.
Conflicts mean different things in real-time co-editing versus branch-based work. Knowing the difference tells you when you need to act.
Two very different cases
Concurrent edits on the same branch are merged automatically by CRDTs. There are no manual conflicts to resolve while co-editing live.
Detect conflicts early
Rather than discovering clashes at merge time, pull another branch into yours to preview how the two diverge:
Pull the other branch
Bring the changes you’ll eventually merge against into your branch as a preview.
Review clashes on the diagram
Studio highlights objects, links, and specs that both branches changed — you see the conflict visually, not as raw YAML.
Resolve in place
Decide the correct state for each conflicting object directly on your branch, then commit.
Merge cleanly
With clashes already resolved, the merge applies without surprises.
Keep divergence small
| Situation | Approach |
|---|---|
| Overlapping intent | Coordinate scope before both branches grow |
| Stale branch | Pull the current canonical state in and resolve early |
| Superseded work | Reset the branch to a known commit and redo cleanly |
Conflicts are visual
Because IOModel compares branches on the live diagram, a conflict reads as two divergent versions of the same object — not a wall of text markers. Resolve it where you can see its impact on the architecture.
The cheapest conflict is the one caught early. Small, short-lived branches and an early diff preview beat any after-the-fact cleanup.
Last updated on