Resolve one region at a time

--region, for files where each side got something right.

Written By Dustin

Last updated 9 minutes ago

A conflicted file usually has several independent conflicting regions, and often each side is right about a different one. There are two things in TOVIO that deal with regions, and they do genuinely different jobs. Mixing them up is the most common way to lose work here, so this is worth reading carefully.

To resolve region by region, use the walk

tovio resolve <path>

The interactive walk is what takes a different side for each region. It shows each conflicting region in turn and assembles your choices into the merged file. That is the tool for "ours here, theirs there".

What --region actually does

tovio resolve <path> --region 0 --ours

This does not resolve only region 0.

Every flag resolve is whole-file: --ours replaces the entire file with the ours side and clears the conflict, whether or not --region is present. What --region changes is what gets written to the replay cache — it records your choice for that one region so the same region can be auto-resolved on a later land, and suppresses the whole-file cache entry that would otherwise claim the entire path was settled.

Read the flag as "record the chosen side for this region", which is what it is named for. If you run it expecting a partial resolve, you will overwrite the other side's regions and the conflict will be gone.

The indices

The index is 0-based and counts conflicting regions in file order — the same order the interactive walk presents them in. tovio conflicts reports paths and types, not region indices; the walk is where you see the regions.

An out-of-range index does not error. It records nothing, while still applying the whole-side resolve — so a wrong number silently costs you the replay entry, not the resolve.

What it pairs with

--region requires a strategy flag and cannot be combined with --working-tree. In practice it is only meaningful with --ours or --theirs: those are the choices the replay cache records. Paired with anything else it has nothing to record.

Omit --region and the resolution is recorded for every region as well as the whole file.

Where partial resolution comes from

A conflict can genuinely be partially resolved — some regions settled, others still open. That state is produced by the replay cache at land time, when your recorded resolutions match some of a conflict's regions but not all of them. It resolves what it recognises, leaves the rest, and your tree keeps building.

tovio conflictstovio explain rerere <path>