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 32 minutes 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.