Inspecting History¶
runic provides several commands for inspecting the revision DAG without modifying the database.
runic history¶
Print all revisions, newest first:
$ runic history
7b3d9e2f (head) add email fulltext index
3f9a12c1 add person email index
Show verbose metadata for each revision with --verbose:
$ runic history --verbose
7b3d9e2f (head) add email fulltext index
create_date: 2026-05-30 10:00:00+00:00
down_revision: 3f9a12c1ab4e
3f9a12c1 add person email index
create_date: 2026-05-30 09:00:00+00:00
down_revision: None
Mark the currently applied revision in the output with --indicate-current
(requires a database connection):
$ runic history --indicate-current
7b3d9e2f (head, current) add email fulltext index
3f9a12c1 add person email index
Show only a subset of the chain with --range start:end:
$ runic history --range 3f9a12c1:7b3d9e2f
7b3d9e2f (head) add email fulltext index
3f9a12c1 add person email index
Either side of the range may be omitted: --range :7b3d9e2f means “from
the base up to that revision”, and --range 3f9a12c1: means “from that
revision to head”.
runic show¶
Print full metadata for a single revision by ID or unique prefix:
$ runic show 3f9a12c1
Revision ID: 3f9a12c1ab4e
Revises: <base>
Message: add person email index
Create Date: 2026-05-30 09:00:00+00:00
Irreversible: False
Snapshot: False
Branch Labels: []
Depends On: []
Path: runic/versions/3f9a12c1ab4e_add_person_email_index.py
runic current¶
Print the currently applied revision (requires a database connection):
$ runic current
7b3d9e2f — add email fulltext index
# When no revision has been applied:
$ runic current
<none>
runic heads¶
Print all head revisions — revisions that no other revision points back to:
# Single head (normal state):
$ runic heads
7b3d9e2f add email fulltext index (single head)
# Multiple heads (after a branch is created):
$ runic heads
c1d2e3f4 add vector index (MULTIPLE HEADS — use merge to resolve)
7b3d9e2f add email fulltext index (MULTIPLE HEADS — use merge to resolve)
When there are multiple heads, runic upgrade head and runic upgrade
(without a target) will refuse to run. Use runic merge to create a merge
revision, or specify an explicit revision ID.
runic branches¶
Print every revision that is a branch point — a revision that two or more other revisions build upon:
$ runic branches
3f9a12c1 add person email index ['7b3d9e2f', 'c1d2e3f4']
The last column lists the direct child revision IDs.
See also¶
Branching and Merging — working with branches and merge revisions
CLI Reference — complete flag reference for all commands