You've been building a cart UI for two days. Your teammate pushed a refactor of the same file. In Git, this means git fetch, git rebase, resolve conflicts, git rebase --continue, git push. In jj, commit 1 of 3 conflicts, and the other 2 just rebase cleanly above it — and you can keep working on other things while the conflict waits.
See the situation: jj log
Your work is in 'Add cart UI' (change ID starts with wconf03). Meanwhile, someone refactored the same file on main — that's 'main refactor' (wconf02). They changed the same lines. A conflict is coming.
● See the situation: `jj log`
○ Rebase your work onto the updated main: `jj rebase -s wconf03 -d wconf02`
○ Don't panic — check status: `jj status`
○ Edit `src/cart.ts` — keep both `render()` and the fixed `total()`, drop the markers — then run `jj resolve src/cart.ts`
○ Verify: `jj log`
🧩 The Abandoned ExperimentUnsolved
📖 Story
You spent three hours refactoring the auth module last Tuesday. It was risky so you jj abandoned it and moved on.
Now your lead says the refactor is exactly what the team needs — ship it by end of day.
The change "WIP: auth refactor" is gone from jj log. Meanwhile, three more changes have landed on main since then.
You need to:
1. Find the abandoned change in the operation log
2. Restore the state before the abandon
3. Rebase it on top of current work (wcurrent02)
4. Give it a proper description — no more "WIP"
Goal
jj log -r 'all()' must:
contain "auth refactor"
not contain "WIP"
jj Terminal
🧩 Problem: The Abandoned Experiment
Recover an abandoned change buried deep in the operation log, rebase it onto current work, and describe it properly.
Use the terminal to solve the problem. jj log -r 'all()' will be checked automatically.