Why you never see "diverged history"
The error TOVIO removed rather than reworded — and the one place it comes back.
Written By Dustin
Last updated About 1 month ago
Git's "Your branch and 'origin/main' have diverged" is the canonical example of an accurate, useless error. TOVIO does not have a better version of it. On the native path it does not have it at all.
Why it cannot happen
Divergence is an error in Git because a branch is a single pointer that two people moved. In TOVIO a lane is a conflict-free replicated reference: concurrent advances merge deterministically, and both sides end up with the same result without anyone choosing a winner.
tovio syncPushes and pulls in one step. If the remote moved while you were working, that is not an exceptional case to recover from — it is the normal case, and it merges. tovio explain sync <lane> will show you each replica's clock-stamped candidate and which one the merge took, if you want to watch it happen.
What can still need your attention
Content conflicts. If you and a colleague edited the same lines, that is a real disagreement no data structure can resolve. TOVIO records it as a conflict object rather than failing the sync: your tree stays buildable and tovio conflicts lists what is open. That command exits 0 — a conflict is data, not a failure.
The distinction matters. Reference divergence is a design problem, and it was designed away. Content conflict is a genuine human disagreement, and it is surfaced as a first-class object instead of an error.
Where divergence does come back
Both places are the Git boundary, because Git's refs are not CRDTs and TOVIO cannot make them be.
Was this helpful?
More in Coming from Git
The Git to TOVIO cheat sheetImport a Git repositoryWhat import carries over, and what it does notWhere did the staging area go?Still need help? Ask the team