Download Latest Version jj-v0.31.0-x86_64-apple-darwin.tar.gz (9.0 MB)
Email in envelope

Get an email when there's a new version of Jujutsu VCS

Home / v0.31.0
Name Modified Size InfoDownloads / Week
Parent folder
jj-v0.31.0-x86_64-pc-windows-msvc.zip 2025-07-02 8.1 MB
jj-v0.31.0-x86_64-apple-darwin.tar.gz 2025-07-02 9.0 MB
jj-v0.31.0-aarch64-apple-darwin.tar.gz 2025-07-02 8.5 MB
jj-v0.31.0-aarch64-pc-windows-msvc.zip 2025-07-02 7.6 MB
jj-v0.31.0-aarch64-unknown-linux-musl.tar.gz 2025-07-02 8.6 MB
jj-v0.31.0-x86_64-unknown-linux-musl.tar.gz 2025-07-02 9.2 MB
jj-v0.31.0-docs-html.tar.gz 2025-07-02 1.4 MB
README.md 2025-07-02 3.1 kB
v0.31.0 source code.tar.gz 2025-07-02 2.0 MB
v0.31.0 source code.zip 2025-07-02 2.4 MB
Totals: 10 Items   56.8 MB 2

About

jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started.

Breaking changes

  • Revset expressions like hidden_id | description(x) now search the specified hidden revision and its ancestors as well as all visible revisions.

  • Commit templates no longer normalize description by appending final newline character. Use description.trim_end() ++ "\n" if needed.

Deprecations

  • The git.push-bookmark-prefix setting is deprecated in favor of templates.git_push_bookmark, which supports templating. The old setting can be expressed in template as "<prefix>" ++ change_id.short().

New features

  • New change_id(prefix)/commit_id(prefix) revset functions to explicitly query commits by change/commit ID prefix.

  • The parents() and children() revset functions now accept an optional depth argument. For instance, parents(x, 3) is equivalent to x---, and children(x, 3) is equivalent to x+++.

  • jj evolog can now follow changes from multiple revisions such as divergent revisions.

  • jj diff now accepts -T/--template option to customize summary output.

  • Log node templates are now specified in toml rather than hardcoded.

  • Templates now support json(x) function to serialize values in JSON format.

  • The ANSI 256-color palette can be used when configuring colors. For example, colors."diff removed token" = { bg = "ansi-color-52", underline = false } will apply a dark red background on removed words in diffs.

Fixed bugs

  • jj file annotate can now process files at a hidden revision.

  • jj op log --op-diff no longer fails at displaying "reconcile divergent operations." #4465

  • jj util gc --expire=now now passes the corresponding flag to git gc.

  • change_id/commit_id.shortest() template functions now take conflicting bookmark and tag names into account. #2416

  • Fixed lockfile issue on stale file handles observed with NFS.

Packaging changes

  • aarch64-windows builds (release binaries and main snapshots) are now provided.

Contributors

Thanks to the people who made this release happen!

  • Anton Älgmyr (@algmyr)
  • Austin Seipp (@thoughtpolice)
  • Benjamin Brittain (@benbrittain)
  • Cyril Plisko (@imp)
  • Daniel Luz (@mernen)
  • Gaëtan Lehmann (@glehmann)
  • Gilad Woloch (@giladwo)
  • Greg Morenz (@gmorenz)
  • Igor Velkov (@iav)
  • Ilya Grigoriev (@ilyagr)
  • Jade Lovelace (@lf-)
  • Jonas Greitemann (@jgreitemann)
  • Josh Steadmon (@steadmon)
  • juemrami (@juemrami)
  • Kaiyi Li (@06393993)
  • Lars Francke (@lfrancke)
  • Martin von Zweigbergk (@martinvonz)
  • Osama Qarem (@osamaqarem)
  • Philip Metzger (@PhilipMetzger)
  • raylu (@raylu)
  • Scott Taylor (@scott2000)
  • Vincent Ging Ho Yim (@cenviity)
  • Yuya Nishihara (@yuja)
Source: README.md, updated 2025-07-02