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 realize that jj new can be used to browse the repository.

Wandering Around

When you run jj new and you land in a new Change, if the Change you left behind is empty, Jujutsu abandons it.

That's a particularly happy default: it implies that you can jump back and forth in your history tree targeting different Changes with jj new.

Target X and run jj new X: by design, the new Change you jump to has the same content that X has. So, you can use it as a safe copy to see what's inside X, replicating its content on your disk.

By sitting on top of the Change you want to visit, you are sure that:

  • You won't pollute the history with empty leftover Changes.
  • There's no risk of unintentional modifications.

In practice, this is a very cheap way to get read-only access to your repository.

Conflict Resolution

Enough with the easy cases. Let's talk about the exact opposite situation.

The mini-workflow (jj new && (jj squash | jj revert)) you saw in the previous page is particularly handy when resolving conflicts.
So, it's definitely time to tackle this topic.