Skip to content

Conflict Resolution

jj allows conflicts to exist inside committed changes. This is different from git, which forces you to resolve conflicts before you can commit.

When a rebase or merge creates conflicts, jj records them inside a special commit marked with a conflict marker in the log. In wyrmflow, these rows appear with a warning indicator.

You can continue working, push to a stack, or come back to resolve later — the conflict is preserved safely.

  1. Click the conflicted commit in the log.
  2. The diff panel highlights conflict regions.
  3. Click Resolve (or press ⌘R / Ctrl+R) to open your configured merge tool.
  4. After saving and closing the tool, wyrmflow snapshots the resolved state automatically.

wyrmflow picks up the merge tool from your jj config:

[ui]
merge-editor = "vscode" # or "vimdiff", "meld", "difftool", etc.

You can also set this from Preferences → Repository → Merge tool.

If you prefer to resolve by hand, the conflict region looks like:

<<<<<<< Conflict 1 of 1
+++++++ Contents of side #1
fn greet() { "hello" }
------- Contents of base
fn greet() { "hi" }
+++++++ Contents of side #2
fn greet() { "hey" }
>>>>>>> Conflict 1 of 1 ends

Delete the markers and keep the version you want, then save — jj will detect the resolution on the next snapshot.