# Jujutsu v0.43.0 - Product: Jujutsu (https://whatsnew.fyi/product/jujutsu) - Vendor: jj-vcs - Date: 2026-07-02 - Version: v0.43.0 - Original notes: https://github.com/jj-vcs/jj/releases/tag/v0.43.0 - Permalink: https://whatsnew.fyi/product/jujutsu/releases/v0.43.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add `jj run` command to run a command over a set of changes, each with their own private working copy, with commands updating the working copy and changes/conflicts propagated accordingly - **added** — Add `--reversed` flag to `jj show` command - **added** — Add support for looking for config files in `/etc/jj` - **added** — Add `jj config gc` to delete configuration of deleted or moved repos from `~/.config/jj/repos` folder - **added** — Add `-o` (`--option`) flag to `jj gerrit upload` command, working like `git push -o` (`--push-option`) - **added** — Add `forks()` revset function that yields all commits with more than 1 child - **added** — Add support for crossed-out text styling with `{ crossed-out = true }` in `colors` config - **changed** — `jj git fetch` now rebases the descendants of revisions that were rewritten based on their change IDs - **removed** — Remove deprecated `git_head()` and `git_refs()` functions from revsets and templates - **removed** — Remove Git-like symbol resolution (e.g. `refs/heads/main`) from revisions; use bookmark/tag `` or `@` syntax instead - **removed** — Remove deprecated `ui.revsets-use-glob-by-default` option - **removed** — Remove `:@` pattern support from `jj bookmark track`/`untrack` commands - **fixed** — Fix Windows behavior where querying a path's file identity no longer follows symbolic links, matching Unix behavior - **fixed** — Fix `jj` to create a new working-copy revision during snapshotting if the working copy was immutable - **fixed** — Add warning in `jj git remote add` if the new remote exactly matches an existing remote's fetch URL or effective push URL - **fixed** — Fix corrupt loose Git objects on Intel Raptor Lake CPU and aarch64 ###### About jj is a Git-compatible version control system that is both simple and powerful. See the [installation instructions](https://jj-vcs.github.io/jj/v0.43.0/install-and-setup/) to get started. ###### Release highlights * `jj run` allows you to run a command over a set of changes, each with their own private working copy; the commands may update the working copy and changes/conflicts are propagated accordingly, e.g., `jj run -- cargo check --all-features` or `jj run -- cargo fix` behaves as one might expect. ###### Breaking changes * The deprecated `git_head()` and `git_refs()` functions have been removed from revsets and templates. * Git-like symbols (e.g. `refs/heads/main`) are no longer resolved to revisions. Use the bookmark/tag `` or `@` syntax instead. * The deprecated `ui.revsets-use-glob-by-default` option has been removed. * `jj bookmark track`/`untrack` no longer supports `:@` patterns. However, the `@` symbol syntax is still supported. [#9226](https://github.com/jj-vcs/jj/issues/9226) ###### Deprecations ###### New features * `jj show` now supports `--reversed` flag. * `jj` now looks for config files in `/etc/jj`. * `jj config gc` will delete configuration of deleted/moved repos from `~/.config/jj/repos` folder. [#9362](https://github.com/jj-vcs/jj/issues/9362) * `jj run` allows you to run a command over a set of changes, each with their own private working copy; the commands may update the working copy and changes/conflicts are propagated accordingly, e.g., `jj run -- cargo check --all-features` or `jj run -- cargo fix` behaves as one might expect. * `jj gerrit upload` now supports the `-o` (`--option`) flag, which works like `git push -o` (`--push-option`). * `jj git fetch` now rebases the descendants of revisions that were rewritten based on their change IDs. Previously, when multiple bookmarked revisions existed in a stack, those rewritten revisions and their descendants wouldn't always be rebased. Note that immutable descendants will not be rebased. * Add a `forks()` revset function that yields all commits with more than 1 child. * `colors` config now supports crossed-out text styling with `{ crossed-out = true }`. ###### Fixed bugs * On Windows, querying a path's file identity no longer follows symbolic links, matching the behavior on Unix. Previously a symlink shared the identity of its target, so two symlinks pointing at the same target were treated as the same file. This identity check is used when writing the working copy to detect aliases of the reserved `.git` and `.jj` directories. [#8924](https://github.com/jj-vcs/jj/issues/8924) * `jj` now creates a new working-copy revision during snapshotting if the working copy was immutable. Previously, the new revision was created immediately after the working copy became immutable. [#7751](https://github.com/jj-vcs/jj/issues/7751) [#9338](https://github.com/jj-vcs/jj/issues/9338) * `jj git remote add` now warns if the new remote exactly matches an existing remote's fetch URL or effective push URL. [#413](https://github.com/jj-vcs/jj/issues/413) * Fixed corrupt loose Git objects on Intel Raptor Lake CPU and aarch64. Previously, jj could report a successful commit even though `git fsck` would later fail with `incorrect data check`, `corrupt loose object`, or `missing blob`, and later jj operations could fail with `corrupt deflate stream`. ###### Contributors Thanks to the people who made this release happen! * adlerd (@adlerd) * ase (@adamse) * Atakan Yenel (@atakanyenel) * Austin Seipp (@thoughtpolice) * Benjamin Tan (@bnjmnt4n) * David Rieber (@drieber) * figsoda (@figsoda) * Gaëtan Lehmann (@glehmann) * hexbinoct (@hexbinoct) * Jakub Stasiak (@jstasiak) * Jonas Carpay (@jonascarpay) * Joseph Lou (@josephlou5) * J _[Truncated at 4000 characters — full notes: https://github.com/jj-vcs/jj/releases/tag/v0.43.0]_