CLI demo

This page shows actual output from the prefablens binary. The site build creates this output.

Terminal

prefablens main compares a ref with your working tree.

default
$ prefablens main
Assets/Prefabs/Robot.prefab
◆ Robot
├─ components (4)
│  ├─ ~ Rigidbody
│  │    Mass: 5 → 12
│  ├─ ~ FixtureBehaviour ‹Script: Assets/Scripts/FixtureBehaviour.cs›
│  │    Speed: 2.5 → 4
│  │    Offset.y: 0 → 0.5
│  ├─ + CapsuleCollider
│  │    Material: None
│  │    Include Layers.Serialized Version: 2
│  │    Include Layers.Bits: 0
│  │    Exclude Layers.Serialized Version: 2
│  │    Exclude Layers.Bits: 0
│  │    Layer Override Priority: 0
│  │    Is Trigger: 0
│  │    Provides Contacts: 0
│  │    Enabled: 1
│  │    Radius: 0.5
│  │    Height: 2.2
│  │    Direction: 1
│  │    Center: (0, 0, 0)
│  └─ - BoxCollider
│       Material: None
│       Include Layers.Serialized Version: 2
│       Include Layers.Bits: 0
│       Exclude Layers.Serialized Version: 2
│       Exclude Layers.Bits: 0
│       Layer Override Priority: 0
│       Is Trigger: 0
│       Provides Contacts: 0
│       Enabled: 1
│       Size: (1, 2, 1)
│       Center: (0, 0, 0)
└─ ◆ ~ Sensor
   └─ components (2)
      ├─ ~ GameObject
      │    Name: Head → Sensor
      └─ ~ Transform
           Position.y: 2 → 2.2
           Position.z: 0 → 0.1

Assets/Prefabs/RobotVariant.prefab
◆ ~ RobotVariant ‹Prefab: Assets/Prefabs/Robot.prefab›
└─ components (1)
   └─ ~ MonoBehaviour
        Level: 7 → 9
        Label: robot → variant

Assets/Scenes/Playground.unity
◆ Sun
└─ components (1)
   └─ ~ Light
        Color.g: 1 → 0.8
        Color.b: 1 → 0.6
        Intensity: 1 → 0.4
◆ Crate
├─ components (1)
│  └─ ~ Transform
│       Position.x: 0 → 3
│       Position.z: 0 → -1
└─ ◆ - Marble
   └─ components (5)
      ├─ - GameObject
      │    Layer: 0
      │    Tag: Untagged
      │    Icon: None
      │    Nav Mesh Layer: 0
      │    Static Editor Flags: 0
      │    Active: 1
      ├─ - Transform
      │    Rotation: (-0, -0, -0, 1)
      │    Position: (0, 1, 0)
      │    Scale: (1, 1, 1)
      │    Constrain Proportions Scale: 0
      ├─ - MeshRenderer
      │    Enabled: 1
      │    Cast Shadows: 1
      │    Receive Shadows: 1
      │    Dynamic Occludee: 1
      │    Static Shadow Caster: 0
      │    Motion Vectors: 1
      │    Light Probe Usage: 1
      │    Reflection Probe Usage: 1
      │    Ray Tracing Mode: 2
      │    Ray Trace Procedural: 0
      │    Ray Tracing Accel Struct Build Flags Override: 0
      │    Ray Tracing Accel Struct Build Flags: 1
      │    Small Mesh Culling: 1
      │    Force Mesh Lod: -1
      │    Mesh Lod Selection Bias: 0
      │    Rendering Layer Mask: 1
      │    Renderer Priority: 0
      │    Materials[0]: Default-Material (built-in)
      │    Static Batch Info.First Sub Mesh: 0
      │    Static Batch Info.Sub Mesh Count: 0
      │    Static Batch Root: None
      │    Probe Anchor: None
      │    Light Probe Volume Override: None
      │    Scale In Lightmap: 1
      │    Receive GI: 1
      │    Preserve UVs: 1
      │    Ignore Normals For Chart Detection: 0
      │    Important GI: 0
      │    Stitch Lightmap Seams: 1
      │    Selected Editor Render State: 3
      │    Minimum Chart Size: 4
      │    Auto UVMax Distance: 0.5
      │    Auto UVMax Angle: 89
      │    Lightmap Parameters: None
      │    Global Illumination Mesh Lod: 0
      │    Sorting Layer ID: 0
      │    Sorting Layer: 0
      │    Sorting Order: 0
      │    Mask Interaction: 0
      │    Additional Vertex Streams: None
      ├─ - SphereCollider
      │    Material: None
      │    Include Layers.Serialized Version: 2
      │    Include Layers.Bits: 0
      │    Exclude Layers.Serialized Version: 2
      │    Exclude Layers.Bits: 0
      │    Layer Override Priority: 0
      │    Is Trigger: 0
      │    Provides Contacts: 0
      │    Enabled: 1
      │    Radius: 0.5
      │    Center: (0, 0, 0)
      └─ - MeshFilter
           Mesh: Sphere (built-in)
◆ + Floor
└─ components (5)
   ├─ + GameObject
   │    Layer: 0
   │    Name: Floor
   │    Tag: Untagged
   │    Icon: None
   │    Nav Mesh Layer: 0
   │    Static Editor Flags: 0
   │    Active: 1
   ├─ + MeshRenderer
   │    Enabled: 1
   │    Cast Shadows: 1
   │    Receive Shadows: 1
   │    Dynamic Occludee: 1
   │    Static Shadow Caster: 0
   │    Motion Vectors: 1
   │    Light Probe Usage: 1
   │    Reflection Probe Usage: 1
   │    Ray Tracing Mode: 2
   │    Ray Trace Procedural: 0
   │    Ray Tracing Accel Struct Build Flags Override: 0
   │    Ray Tracing Accel Struct Build Flags: 1
   │    Small Mesh Culling: 1
   │    Force Mesh Lod: -1
   │    Mesh Lod Selection Bias: 0
   │    Rendering Layer Mask: 1
   │    Renderer Priority: 0
   │    Materials[0]: Default-Material (built-in)
   │    Static Batch Info.First Sub Mesh: 0
   │    Static Batch Info.Sub Mesh Count: 0
   │    Static Batch Root: None
   │    Probe Anchor: None
   │    Light Probe Volume Override: None
   │    Scale In Lightmap: 1
   │    Receive GI: 1
   │    Preserve UVs: 1
   │    Ignore Normals For Chart Detection: 0
   │    Important GI: 0
   │    Stitch Lightmap Seams: 1
   │    Selected Editor Render State: 3
   │    Minimum Chart Size: 4
   │    Auto UVMax Distance: 0.5
   │    Auto UVMax Angle: 89
   │    Lightmap Parameters: None
   │    Global Illumination Mesh Lod: 0
   │    Sorting Layer ID: 0
   │    Sorting Layer: 0
   │    Sorting Order: 0
   │    Mask Interaction: 0
   │    Additional Vertex Streams: None
   ├─ + MeshCollider
   │    Material: None
   │    Include Layers.Serialized Version: 2
   │    Include Layers.Bits: 0
   │    Exclude Layers.Serialized Version: 2
   │    Exclude Layers.Bits: 0
   │    Layer Override Priority: 0
   │    Is Trigger: 0
   │    Provides Contacts: 0
   │    Enabled: 1
   │    Convex: 0
   │    Cooking Options: 30
   │    Mesh: Plane (built-in)
   ├─ + MeshFilter
   │    Mesh: Plane (built-in)
   └─ + Transform
        Rotation: (0, 0, 0, 1)
        Position: (0, 0, 0)
        Scale: (1, 1, 1)
        Constrain Proportions Scale: 0
components (1)
└─ ~ SceneRoots
     + Roots[2]: #615180541

Assets/Settings/Fixture.asset
components (1)
└─ ~ FixtureData ‹Script: Assets/Scripts/FixtureData.cs›
     Hit Points: 100 → 150
     Title: fixture → fixture v2
     Weights[0]: 0.1 → 0.7
     Weights[2]: 0.7 → 0.1
     + Weights[3]: 0.05
     Items[0].Item Name: sword → potion
     Items[0].Cost: 50 → 10
     Items[0].Consumable: 0 → 1
     Items[1].Item Name: potion → sword
     Items[1].Cost: 10 → 50
     Items[1].Consumable: 1 → 0
     + Items[2].Item Name: shield
     + Items[2].Cost: 80
     + Items[2].Consumable: 0
     Material Ref: Assets/Materials/Fixture.mat → None
     Tint.g: 1 → 0.5
     Tint.b: 1 → 0

HTML report

prefablens --open main writes a self-contained report. Open the report as a full page.

html

Git merge

After prefablens setup-merge, git merge opens the PrefabLens TUI for UnityYAML conflicts.

git merge

GUI Git clients

For GUI Git clients on macOS and Windows, set the installed PrefabLens executable as the external merge tool. Use these arguments:

mergetool --terminal <base> <local> <remote> <merged>

Replace the four paths with your client's placeholders. Open a conflicted file with the external merge tool. Resolve it in PrefabLens, then return to your Git client to stage it.

Fork example