Text Merge
A text merge combines changes from two versions of a file into a single editable result.
You may invoke a merge via Git integration, dropping three text files, or choosing File ▸ Merge.
Layout
This screen asks you to resolve two conflicting modifications of a common base file.
The center pane highlights the conflict region in yellow and leaves it empty. You must explicitly decide which changes prevail or type a custom resolution. The original base version remains accessible by clicking the blue Base label at the top of the center pane.
Three-Way Merge Structure
This is the standard Git three-way merge model:
- Local: your version (a modification of the base)
- Base: the common ancestor
- Remote: the incoming conflicting modification
Local → Base ← Remote
↓
Result
Result is the only editable file. When invoking the application from Git, the merge is considered complete when the user saves (⌘S) the file and quits the application.
Edit and Navigation
Navigation
| Action | Shortcut |
|---|---|
| Previous / next row | ↑ / ↓ |
| Previous / next pane | ← / → |
| Jump to first / last row | ⌘↑ / ⌘↓ |
| Previous change / next change | ⌥↑ / ⌥↓ |
| Previous / next hunk | ⌥↑ / ⌥↓ |
| Switch to other pane | ⇥ |
Copy
| Action | Shortcut |
|---|---|
| Copy to right | ⌘→ |
| Copy to left | ⌘← |
| Extend selection | ⇧↑ / ⇧↓ |
| Copy entire hunk to right | ⇧⌘→ |
| Copy entire hunk to left | ⇧⌘← |
A selected line is shown with a yellow rectangle. A hunk is a contiguous conflict/change block. Copy actions are enabled only when they would change Result and when selection is on a real line.
To copy changes
- Use Copy to copy the current selected lines.
- Use Copy entire hunk to copy the block where the selected line is.
- Use Solve with on the selected line, either right clicking a line or from the Edit ▸ Solve with menu.
All copy actions are undoable with ⌘Z.
Editing
| Action | Shortcut |
|---|---|
| Start editing selected Result row | Return |
| Start editing a Result row directly | Double-click row |
| Commit and move to next editable row | Return (while editing) |
| Commit and exit edit mode | Command-Return |
| Cancel current row buffer and exit edit mode | Esc or Command-. |
Edition can also be started via mouse double clicking a row. All edit actions are undoable with ⌘Z.
Save
Select File ▸ Save or press ⌘S to save the result pane. The other files are read-only.
View Options
Text merge exposes options that change how the comparison is computed or displayed. These options are available from the options menu.
- Ignore Patterns reduce noisy differences. See Ignore Patterns.
- JSON Normalization compares canonical JSON structure instead of raw formatting.
- Semantic line split default is configured in Settings, not in this options menu.
These settings affect matching and visualization; they do not directly edit files.