Resolve conflicts interactively
tovio resolve, walking each one.
Written By Dustin
Last updated 6 minutes ago
tovio resolveWith no path and no strategy flag, this walks every open conflict, region by region. Pass a path alone to walk just that one:
tovio resolve src/app.rsThis is the only way to take different sides for different regions of the same file. The flag forms all resolve a whole file at once.
The region menu
For each conflicting region you get a unified ours-versus-theirs diff with the changed words highlighted, and a choice:
Pressing Enter on its own re-prompts rather than picking something for you. A merge is not a place for a silent default.
No markers, no external editor
The walk never writes conflict markers into your files and never launches a merge tool. The e option edits the region inline, inside the walk. Whatever you choose, the file that lands cannot contain a stray marker line, because no marker was ever inserted to leave behind.
Skipping
Skip a region and the file is not rewritten at all — the walk needs a decision for every region before it can assemble a merged result. The path stays conflicted and the walk tells you how many regions you left open.
The choices you did make are still remembered for replay, so coming back to finish is not starting over.
It needs a terminal
The walk requires an interactive terminal. Under --json, --quiet, or a pipe it refuses with TVO-CONFLICT-012 instead of guessing. A script must name a strategy explicitly — which is the point.
When to use flags instead
tovio resolve <path> --ourstovio resolve <path> --theirsA strategy flag always requires a path, and you may pass only one strategy at a time. There is no flag that applies one side to every conflict at once.
Inspecting before deciding
tovio cat <path> --side ourstovio cat <path> --side theirstovio cat <path> --side baseAll three sides are intact while the conflict is open, including the common ancestor — often the fastest way to see what each side actually did.
Undo
tovio undoA resolve is recorded in the op-log, so it reverses like any other operation.