Is my lane ready to land?

health, land --dry-run and build-check — three different questions.

Written By Dustin

Last updated 28 minutes ago

tovio healthtovio health --into develop

health answers "what would stop this landing" without changing anything. It reports the landing state, the conflicts that block it, how stale you are against the target, and the semantic verdict:

Change health — `feature-x` landing into `main`  conflicts:  none  staleness:  4 commit(s) behind main  semantic:   clean  landable:   yes (7 changed file(s) merge cleanly)

It has five verdicts: nothing to land (you are on the target), nothing to land (the lane is unborn), fast-forward, already contained in the target, and a clean or conflicted three-way merge. A conflicted verdict lists each conflict's kind and path.

health is about the merge, not your desk. It does not tell you whether the working copy is clean — that is tovio status.

The full trace

tovio health --explaintovio health --explain --format html > health.html

Swaps the summary for the complete merge-process trace: base selection, per-file algebra, and each gate's checklist. Same renderer as tovio land --explain.

The conflict-free gate

tovio build-checktovio build-check develop

Exits 0 if the named lane's tip carries no unresolved conflict objects, and TVO-CONFLICT-010 listing the offending paths if it does. This is the VCS-layer buildability gate a protected lane can require — it does not compile anything or run your tests, and there is no configuration slot for a build command yet.

Per change, not per lane

tovio change health chg:a3f7b2

Reports landability for one change, which is what you want when you have a stack and only the bottom of it is ready.

The quick versions

tovio status --conflictstovio conflictstovio land --dry-run

land --dry-run is the closest thing to a rehearsal: it runs the same assessment the real land would and advances nothing.

If it is stale

tovio rebase --onto main

Reparents your work onto the current target. Change ids are preserved.