Merge Viewer - bcssov/IronyModManager GitHub Wiki
The Merge Viewer is the central tool used to inspect, compare, and resolve conflicts detected by the Conflict Solver β Conflict Solver Modes.
It allows you to analyze differences between mods, understand which definition βwins,β and build a merged version using a virtual definition.
1. Overview
The Merge Viewer opens when you select a conflicted definition inside Conflicted Objects β Conflicted Objects.
It presents:
- All definitions contributing to the conflict
- A virtual, editable definition
- Comparison tools for navigating and understanding differences
The Merge Viewer may operate in editable or read-only mode depending on the capabilities of the underlying conflict data for that specific definition.
2. Definitions Pane
The left side lists all definitions contributing to the conflict.
Example screenshot:

Each definition is color-coded:
π’ Green β Virtual Definition
This is the editable definition.
All merge actions apply to this virtual definition.
The virtual definition is created by copying the content of the orange definition, unless conflict history is available.
π Orange β Chosen Game-Winning Definition
This is the definition that Irony believes the game will actually use if you do not resolve the conflict.
It may display labels such as:
- FIOS
- LIOS
- Load Order
- Override
These labels indicate why this definition is expected to win in-game under the current load order and dependency rules.
Irony uses this definition as the starting point for the virtual definition, unless conflict history is available.
3. Merge Viewer Actions (Non-Virtual Definitions)
Non-virtual definitions are read-only.
You cannot edit their contents directly.
Available actions:
β’ Next / Prev conflict
Moves to the next or previous difference.
β’ Copy text
Copies the entire definition to the clipboard.
β’ Copy all
Copies all code blocks from the selected definition into the virtual definition.
β’ Copy this
Copies only the selected code block into the virtual definition.
β’ Copy this before line
Inserts the selected block above the highlighted block in the virtual definition.
β’ Copy this after line
Inserts the selected block below the highlighted block in the virtual definition.
4. Merge Viewer Actions (Virtual Definition)
The virtual definition (green) is where all merging takes place.
Available actions:
β’ External Merge
If an external merge tool is configured in Options β Options,
Irony can launch it with the current conflict.
Irony waits for you to finish editing and save changes in the external tool before importing them back.
β’ Toggle Diff Compare Mode
Switches between the new diff interface and the legacy viewer.
β’ Next / Prev conflict
Navigates between conflict points inside the virtual definition.
β’ Copy text
Copies the virtual definition to the clipboard.
β’ Edit
Allows direct editing of the virtual definition.
β’ Move up / down
Moves the selected code block within the virtual definition.
5. Resolve & Ignore
Resolve
Writes the virtual definition to the patch mod.
The conflict disappears from the Conflicted Objects view β Conflicted Objects
A conflict reappears if:
- The mod collection changes
- A mod affecting the definition is updated
- You manually Reset Conflicts β Reset Conflicts
Ignore
Marks the conflict as ignored.
It remains hidden until the underlying content changes again.
6. Back
Returns to the main Irony interface without resolving or ignoring the conflict.
Edits to the virtual definition are preserved until the solver is closed or the collection changes.
7. Read-Only Scenarios
Merge Viewer operates in read-only mode when:
- The definition type cannot be auto-merged
- The conflict is being analyzed only
- The data structure does not support merge operations
You may still:
- Navigate conflicts
- Copy text
- Inspect differences
β¦but you cannot modify or merge them.
Summary
The Merge Viewer provides:
- A detailed comparison of all definitions involved in a conflict
- A virtual definition for building a resolved version
- Tools for selective merging and navigation
- Optional integration with external merge tools
- Resolve/Ignore workflows
- Support for both editable and read-only scenarios
It is the primary interface for analyzing and resolving conflicts in Irony.