Find who changed a line and why
tovio blame, with rationale and run record.
Written By Dustin
Last updated 34 minutes ago
tovio blame <file>Attributes each line to the change that introduced or last modified it. Because attribution is to a change rather than a commit, it survives rebases and amends โ the id you get back still resolves after history moves. A line inherited unchanged from the base shows as (base).
Every flag
The version worth using
tovio blame <file> --whyโWho wrote thisโ is rarely the real question; โwhy is this hereโ is, and this answers it directly instead of sending you to dig through history. A change with no recorded rationale says so rather than guessing.
Where blame has nothing to say
Line-level attribution needs clear text. A protected file, a large or binary file, and an empty file all produce no line attribution โ blame tells you that rather than printing an empty result. For a protected file, use tovio log <path> and tovio change show instead.
Following up
tovio change show <id>Takes the change id from blame output and gives you the full picture โ author, time, provenance, rationale, files changed, and with --diff the whole patch.
In the editor
The VS Code extension exposes this as inline blame and a โWhy This Line?โ hover, which is usually where you want it.
Where to find it
blame is Advanced-tier, so it is hidden from the default tovio help index. It still runs โ tovio help --all lists it, and tovio help blame prints its full help regardless of tier.