ELSEIF
Your brief EB
301 stories from 73 feeds 86 clusters Refreshed 5 minutes ago next pull 11:35

TECH Signal 395

jujutsu 0.44.0

Jujutsu version 0.44.0 stabilizes tag fetching and pushing, introduces several breaking changes, and adds new features for workspace management, command execution, and file search while fixing alias and temporary-file handling bugs.

WHY IT MATTERS

Engineers using jj as a Git-compatible VCS will see their tag workflows change, with tracked tags now pushed by default and fetch behavior aligned to bookmarks. The new template functions, run flags, and interactive absorb options give more control over automation and scripting. Improved alias expansion and Git temporary-file cleanup reduce unexpected failures in CI/CD pipelines and local workflows.

Written by elseif from the cluster below · every claim links back to a source

The three things worth knowing

01

Tag fetching and pushing are now stabilized; tracked tags are pushed by default and fetched as <name>@<remote> with automatic local tracking.

02

Breaking changes include the removal of the old --fetch-tags clone option, the deprecation of Git's tagOpt, and updated template functions that return Option<FsPath> instead of String.

03

New features add a merge_point revset, workspace-root listing, try() error suppression, ordered jj run execution, passthrough and ignore flags for run, line-numbered file search, --allow-conflicts for git push, tag track/untrack commands, and interactive absorb.

THE READ

What the cluster adds up to.

ORIGINAL ANALYSIS

The release treats tags as first-class citizens similar to bookmarks. Previously, tag handling was less consistent; now fetching a remote tag creates a local tag that tracks the remote, and pushing with --all includes tags automatically. This change aligns jj’s behavior with common Git workflows where tags are treated like other refs.

Breaking changes affect existing scripts and configurations. The removal of jj git clone --fetch-tags=all|none|included means users must migrate to the new --tag=PATTERN flag. Disabling tag fetching now requires setting remotes.<name>.fetch-tags = '~*' in the config, and template functions that once returned plain strings now return Option<FsPath>, requiring updates to any custom templates or scripts that rely on those values.

New functionality expands automation capabilities. The merge_point() revset simplifies finding convergence points of multiple branches, while jj workspace list defaults to showing workspace roots, making it easier to script multi-workspace setups. The jj run command now guarantees start order of revisions, offers --passthrough for direct subprocess output, and adds flags to ignore changes or errors, giving engineers finer control over batch execution.

File search improvements increase visibility: each match is prefixed with its full path and, with -n/--line-number, the line number within the file. The jj absorb command gains an interactive mode, allowing selective hunk absorption without first splitting a commit. These changes reduce the need for extra steps when preparing commits or reviewing changes.

Bug fixes address reliability concerns. Recursive alias detection now prevents infinite expansion, and aliases can fall back to default commands, which helps avoid surprising behavior in complex alias chains. Git temporary files are cleaned up more reliably when processes are interrupted, reducing the chance of leftover lock files or corrupted states in shared repositories.

Written by elseif from the cluster below · checked for specifics the sources never contained

THE CLUSTER

Same story, 1 feed.

ORDERED BY FIRST SEEN
Lobsters jujutsu 0.44.0 Open ↗