Branching Model

Diversion uses a ref-based branching model similar to Git, with stream-topology concepts borrowed from Perforce Streams. Branches are instant to create (no copy), cheap to maintain, and support merge-direction policies.

Branch Types

  • main: the integration branch. Protected by default — requires merge review for Studio plan.
  • release/X.Y: stabilization branch. Maps to a P4 release stream.
  • feature/<name>: short-lived work branches. Created per task or sprint.
  • hotfix/<name>: emergency fix branches forked from release.

Creating Branches

diversion branch create feature/cityhub-rework --from main
diversion branch create hotfix/menu-crash --from release/0.9

Branch Diagram

main feature/ hotfix/ release merge

Merge with Bake Detection

diversion merge main --check-bakes
# âš  Stale bake: City_Hub_BuiltData.uasset
#   main has fresher bake (2026-04-11). Recommend: use main version.
# Proceed anyway? [y/N]

Delete a Branch

diversion branch delete feature/cityhub-rework
# ✓ Branch deleted (remote and local ref removed)