HN
Today

What is jj and why should I care?

Jujutsu (jj) emerges as a potential Git successor, promising a simpler yet more powerful distributed version control experience by blending the best of Git and Mercurial. Its key appeal on Hacker News lies in its claimed ability to simplify complex Git workflows and its Git-compatible backend, allowing individual developers to adopt it without requiring their entire team to switch. However, this bold claim sparks intense debate among developers, with many questioning the necessity of a new VCS and highlighting potential integration challenges.

143
Score
71
Comments
#1
Highest Rank
10h
on Front Page
First Seen
Apr 14, 12:00 PM
Last Seen
Apr 14, 9:00 PM
Rank Over Time
111291013161920

The Lowdown

The article introduces jj, the command-line interface for Jujutsu, a new distributed version control system (DVCS) designed to improve upon existing systems like Git and Mercurial. It positions jj as a tool that is both simpler and easier to use than Git, while paradoxically offering more power and cleaner workflows.

  • jj aims to synthesize the most beneficial features of Git and Mercurial into a cohesive new system.
  • A central claim is that jj provides a smaller set of essential tools that are more powerful due to their integrated design.
  • Advanced jj usage is presented as offering powerful version control capabilities that are challenging or impossible to achieve with standard Git.
  • A significant selling point is its git-compatible backend, meaning users can adopt jj individually without forcing their entire team to convert, thus minimizing risk and transition friction.

The author acknowledges the ambitious nature of these claims but invites readers to explore the tutorial to understand how jj delivers on its promise. The low-risk trial due to Git compatibility is emphasized as a compelling reason to investigate jj.

The Gossip

Git's Grievances and the Case for `jj`

Many commenters debate the perceived shortcomings of Git and whether `jj` genuinely offers a compelling alternative. While some acknowledge Git's complexity and

Workflow Wonders and Woes

A significant portion of the discussion revolves around `jj`'s unique workflow, particularly its handling of commits and the distinction between `jj new` and `jj edit`. Commenters express confusion and concern over `jj`'s seemingly 'automatic' commit behavior, contrasting it with Git's explicit staging area. Proponents clarify that `jj new` acts like creating an empty staging area, and advise against `jj edit` for most tasks, suggesting `jj new` followed by `jj squash` as a safer alternative. This highlights a learning curve and new idioms for Git veterans.

Compatibility Concerns and Review Roadblocks

Despite `jj`'s claim of Git compatibility, users raise practical integration challenges, especially concerning code review workflows on platforms like GitHub. The difficulty arises from `jj`'s frequent rebasing and rewriting of history, which can cause review platforms to 'lose' the delta between reviewed changes. Commenters seek solutions, including discussing GitHub's `gh-stack` feature, but ultimately highlight that seamless collaboration with Git-centric tools remains a hurdle. However, others attest to happily using `jj` on Git teams, suggesting it's manageable.

AI Adoption and VCS Evolution

A few commenters ponder `jj`'s potential role in the age of AI, questioning whether it is 'better for AIs.' While some note AI models struggle with `jj`'s evolving CLI due to outdated training data, others suggest `jj`'s robust `undo` capabilities and commit-as-snapshot model might make it more forgiving for AI agents. The discussion also broadens to the future of version control, with calls for a concerted industry effort to evolve beyond Git, possibly with a 'GitNext' system that maintains backend compatibility while improving the user experience.