Jujutsu (jj), a git compatible VCS
by Tony Finn
jj is one of the latest round of git-compatible version control systems which allows you to have a better experience locally, without having to abandon everything that depends on git.
The biggest difference between jj and git is that git revolves around commits as the main unit of change, while jj revolves around changesets. Unlike a commit, a change set provides a stable identifier around a set of changes even as those changes are revised.
Another major difference between jj and git is that the primary method of branching is anonymous branches.
jj generally tries to reduce the number of concepts a developer needs to understand. This comes through in both the simpler UI, and in the smaller number of concepts to deal with.
Some examples:
- stashes in git? Just use commits.
- Does a system need both fast forward merges and rebases? jj goes with just rebases.
- Do you need a bunch of commands for different types of merge, or can you just create a new change with a list of parents?
- Working copy? Just a commit.
Published: 2024-12-11