-
Notifications
You must be signed in to change notification settings - Fork 46
Merge Viewer
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.
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.
The left side lists all definitions contributing to the conflict.
Example screenshot:

Each definition is color-coded:
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.
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.
Non-virtual definitions are read-only.
You cannot edit their contents directly.
Available actions:
Moves to the next or previous difference.
Copies the entire definition to the clipboard.
Copies all code blocks from the selected definition into the virtual definition.
Copies only the selected code block into the virtual definition.
Inserts the selected block above the highlighted block in the virtual definition.
Inserts the selected block below the highlighted block in the virtual definition.
The virtual definition (green) is where all merging takes place.
Available actions:
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.
Switches between the new diff interface and the legacy viewer.
Navigates between conflict points inside the virtual definition.
Copies the virtual definition to the clipboard.
Allows direct editing of the virtual definition.
Moves the selected code block within the virtual definition.
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
Marks the conflict as ignored.
It remains hidden until the underlying content changes again.
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.
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.
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.