Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Goal

You see how Jujutsu warns you when there is a conflict.

○  nz        merge-b
│ ○  m         merge-a
├─╯
○  vr       Base of merge-a and merge-b
│
~

So, let's create this conflict. Merge merge-a and merge-b, with the message Merge conflict. Do you remember how to merge branches?

Solution

jj new merge-a merge-b -m "Merge conflict"

or:

jj new a nz -m "Merge conflict"

Of course, nothing stops you from swapping the arguments:

jj new merge-b merge-a -m "Merge conflict"

or:

jj new nz a -m "Merge conflict"

Swapping arguments won't change the result, but the conflict details will be swapped too. Not a big issue at all, but for the sake of simplicity, I assume you specified a / merge-a as the first argument.

Jujutsu will let you know you have a conflict:

Working copy  (@) now at: nlpwoyvx 0670a921 (conflict) (empty) (no description set)
Parent commit (@-)      : mvxxwqoo e1acf668 merge-a | (no description set)
Parent commit (@-)      : nzsunxwp 0004a47a merge-b | (no description set)
Added 0 files, modified 1 files, removed 0 files
Warning: There are unresolved conflicts at these paths: file.txt    2-sided conflict

Notice: it's warning, not an error. When you are in a conflicted Change, jj log will display the @ marker in red. Any other conflicted Change will be displayed as a red ×.

As we've noted before, having a conflict won't prevent you from continuing your work.
Let's challenge this notion.