add jujutsu article

This commit is contained in:
Fabien Freling 2024-11-26 14:38:41 +01:00
parent 45ce87e6b1
commit f5a82e8d21
7 changed files with 80 additions and 0 deletions

View file

@ -24,3 +24,11 @@ HTML_TEMPLATE = main.html
JPG_OPT = -quality 80 -strip -interlace Plane JPG_OPT = -quality 80 -strip -interlace Plane
!blur_mini = |> ^ %f -> blur mini^ convert %f -resize 400x400 -blur 0x8 $(JPG_OPT) %o |> blur_mini.jpg !blur_mini = |> ^ %f -> blur mini^ convert %f -resize 400x400 -blur 0x8 $(JPG_OPT) %o |> blur_mini.jpg
!thumbnail = |> ^ %f -> thumbnail^ convert %f -resize 200x200 $(JPG_OPT) %o |> !thumbnail = |> ^ %f -> thumbnail^ convert %f -resize 200x200 $(JPG_OPT) %o |>
#
# Slides
#
MARP = npx @marp-team/marp-cli@latest
MARP_OPTS = --allow-local-files --bespoke.progress
!marp_pdf = |> $(MARP) $(MARP_OPTS) %f --pdf --output %o |> %B.pdf
!marp_html = |> $(MARP) $(MARP_OPTS) %f --html --output %o |> %B.html

6
articles/jujutsu/Tupfile Normal file
View file

@ -0,0 +1,6 @@
include_rules
HTML_TEMPLATE = article.html
: slides.md |> !marp_pdf |> jujutsu_slides.pdf ./<deps>
: index.md | ./<deps> |> !html |>

40
articles/jujutsu/index.md Normal file
View file

@ -0,0 +1,40 @@
---
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. Im 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)_

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -0,0 +1,23 @@
---
marp: true
theme: gaia
footer: '**Fabien Freling** - 2024-11-26'
paginate: true
---
<style>
section::after {
content: attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total);
}
</style>
<!--
_class: lead
-->
# Jujutsu
Life after Git
---

View file

@ -1,6 +1,7 @@
--- ---
title: Web stack title: Web stack
date: 2019-06-26 date: 2019-06-26
update: 2024-11-26
--- ---
Previous stacks Previous stacks

View file

@ -7,10 +7,12 @@
devShell.x86_64-linux = with pkgs; devShell.x86_64-linux = with pkgs;
mkShell { mkShell {
nativeBuildInputs = [ nativeBuildInputs = [
graphviz-nox
imagemagick imagemagick
just just
libavif libavif
libjxl libjxl
nodejs
nushell nushell
pandoc pandoc
tup tup