Check an import before you trust it
Ten minutes of verification that prevents a bad migration.
Written By Dustin
Last updated About 3 hours ago
An import that reports success can still have surprised you. This is the short pass worth doing before anyone else touches the result.
1. Read the skips
The completion report lists skipped branches and skipped tags. A skipped branch had a name that is not a valid lane name; a skipped tag had a rejected name or a target that was not one of the imported commits. Neither is an error, and both are silent data loss if you do not look.
tovio git import <source> --jsonThe JSON form carries the same census in machine-readable fields, which is the one to keep if you are scripting a migration.
2. Compare the counts
tovio log --limit 1tovio lanetovio tagCompare lanes and tags against git branch -a and git tag on the source. The difference should be exactly the skips the report named — nothing else.
3. Check the integrity of the store
tovio fsckRe-hashes every object, verifies references and the audit chain, and scans for leaked key material. Exit 0 means no structural problem. Suspected key material is an advisory warning by default; tovio fsck --strict promotes warnings to failures, which is the form to run in CI.
4. Spot-check content, not just topology
tovio cat <path> --at <lane>tovio log <path>tovio blame <path>Pick a file with an interesting history — one that was renamed, one that is large, one that was deleted and restored — and read it at a few points. Topology is the easy half; content at a revision is the half that tells you the translation worked.
5. Look for what the dot rule ate
tovio statusRun it in the imported working copy before committing anything. If .github/ or another hidden path matters to you, this is the moment to write the negation into .tovioignore — after the first native commit, the tree no longer has them.
6. Then make one commit
Make a small, real commit and run tovio log --limit 3 and tovio status again. A clean first commit on top of imported history is the actual proof that the repository is usable, and it is much cheaper to discover a problem here than after the team moves.
If something is wrong
Import is cheap to redo and refuses to run into a repository that already has lanes, so the recovery is always the same: delete the directory, tovio init a fresh one, and import again with different flags. Nothing you did touched the Git source.