Start a new change, parallel or draft
tovio change new, its two flags, and how to describe and promote what you started.
Written By Dustin
Last updated About 1 month ago
tovio change newtovio change new "fix the parser"Starts a new change and makes it current. With no --base the next commit stacks on the change you were on. The optional name is a description, not an identifier โ the id is minted for you.
Parallel work
tovio change new experiment --base main--base <lane> starts an independent track on that lane instead of stacking, safely switching and materializing it first. Reach for it when a quick fix should not sit behind a long-running feature.
Either way the prior working state is snapshotted into the op-log first, so the whole new-change boundary is undoable and you never have to stash to cross it.
Draft changes
tovio change new spike --drafttovio change promote chg:a3f7b2A draft is private and not landable and not proposable. Attempting either is TVO-OP-012, refused before any ref advances or any Forge call is made. Promoting clears the flag. The draft state is local op-log state, not something baked into a commit.
Describing it
tovio change describe chg:a3f7b2 "Handle the empty-input case"Both arguments are required: the change and the text. This sets a local description without committing anything, and it is what change list and change show display when a change has no commit yet.
Seeing what you have
tovio change listLists every change newest-first, marks the current one, labels drafts, and hides abandoned ones. A change with no commit yet shows (no commit yet) instead of a tip. Add the global --json for the machine-readable form, which includes the abandoned ones with their flags.
Was this helpful?
More in Lanes, changes & history
Create, list and delete lanesSwitch lanes without losing uncommitted workLand a laneIs my lane ready to land?Still need help? Ask the team