41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
|
---
|
|||
|
title: "Lightning talk: Jujutsu"
|
|||
|
date: 2024-11-26
|
|||
|
---
|
|||
|
|
|||
|
_This article is also available as a lightning talk: [pdf](./jujutsu_slides.pdf)_
|
|||
|
|
|||
|
## What is it?
|
|||
|
|
|||
|
[Jujutsu](https://github.com/martinvonz/jj) is a new version control software
|
|||
|
(VCS), like git, mercurial, etc. Git is the actual gold standard for VCS, even if its
|
|||
|
UX could be better. There is a whole ecosystem around git that makes switching
|
|||
|
to similar projects (eg. mercurial) a daunting task. How does jujutsu plans on
|
|||
|
making us switch?
|
|||
|
|
|||
|
Jujutsu separates the frontend (what the user interacts with) and the
|
|||
|
backend (how the information is stored). And the main backend is actually git
|
|||
|
repositories. There is a native backend being developed but it's not ready for
|
|||
|
prime time. Sharing the same backend as the most popular VCS, Jujutsu aims to
|
|||
|
improve on the frontend.
|
|||
|
|
|||
|
## How does it compare?
|
|||
|
|
|||
|
### No branch, only revisions
|
|||
|
|
|||
|
Jujutsu understand git commits, but operates at a higher level with revisions.
|
|||
|
Revisions wrap commits, however as you move revisions around (edit with changes,
|
|||
|
or rebase), they keep their id. Only their underlying commit id changes.
|
|||
|
|
|||
|
With revision ids being stable, you don't need branches to start working: create
|
|||
|
a new revision, and start working. You will need to create a branch (or bookmark
|
|||
|
in jujutsu world) to push your changes, but it can be done at the end.
|
|||
|
|
|||
|
There is no special mode like git's "Detached HEAD", you are always on a revision. You can jump around
|
|||
|
|
|||
|
## VCS landscape
|
|||
|
> I was part of the team at Meta that built Sapling for many years. I’m no
|
|||
|
> longer at Meta and I use jj full time.
|
|||
|
>
|
|||
|
> _[Discussion on Lobste.rs](https://lobste.rs/s/rojoz1/jujutsu_jj_git_compatible_vcs#c_foqya4)_
|