Depend on a teammate's unlanded change

tovio change pull, as a recorded read-only dependency.

Written By Dustin

Last updated 28 minutes ago

tovio change pull chg:a3f7b2

Records a colleague's change as a read-only dependency of yours. You build on top of it without owning it and without waiting for it to land. The edge is local, idempotent, and shows up in change show from both sides. The change must already exist in your local history — sync first, or you get TVO-OP-006.

pull records the edge; it does not materialize anything into your working copy.

Why read-only

The change stays theirs. You cannot amend it, and your work sits above it. When theirs lands, yours re-derives onto the landed result cleanly, because the change ids survived.

The alternative it replaces

In Git this is cherry-picking someone's commits, which duplicates them, or branching from their branch, which couples you to every force-push they make. Neither records that a dependency exists. change pull does.

If their change is conflicted

Pulling in a change that still carries unresolved conflicts is refused with TVO-CONFLICT-004: the objects download, but materializing them would drop a broken tree on you. The escape hatch:

tovio sync --isolate

Builds each gated path at its last-known-clean version — a derived view, never a stored object. Non-conflicted paths use current content, and each isolated path is pinned so tovio status keeps flagging the isolated build until the author's resolution clears it.

tovio explain deps <commit>

Explains exactly why a given commit is, or is not, blocked by the materialization gate.

Knowing when it lands

tovio change notify chg:a3f7b2tovio change watch chg:a3f7b2 --remote forge.example.com:8443tovio change watch chg:a3f7b2 --remote forge.example.com:8443 --once

notify records a durable local intent and needs no Forge. watch polls a live Forge event feed over pinned TLS and resolves when a landed or resolved event arrives. Without --remote, watch fails closed with TVO-OP-010 rather than sitting silently on no event source.

Seeing your dependencies

tovio change list --stacktovio change show chg:a3f7b2