Conflict Resolution
Conflict Resolution

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

SituationApproach
Overlapping intentCoordinate scope before both branches grow
Stale branchPull the current canonical state in and resolve early
Superseded workReset 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