Urgent.News

What's breaking now, across thousands of outlets.

Tech

jujutsu 0.44.0

jj version 0.44.0 was released. This version brings several improvements and new features. Tags are now fetched and tracked in a similar manner to bookmarks. Running jj git fetch will re-fetch all tags to update the tracking state. The tagOpt option for git tag is no longer respected, and fetching tags can be disabled by setting remotes.name.fetch-tags to ~*.

The jj git clone command with --fetch-tags=all|none|included has been removed, replaced by --tag=PATTERN. Pushing all tags, in addition to bookmarks, is now done with jj git push --all. The WorkspaceRef.root() and RepoPath.absolute() template functions now return Option FsPath and FsPath, respectively, rather than String. The path keyword in jj config list templates now returns Option FsPath.

Searching for files now prefixes each matched line with its file path. Use --name-only to revert to the previous behavior. Passing the same argument multiple times is no longer an error, with the last occurrence taking precedence. Arguments that can be specified multiple times still collect all values. New merge_point() revset function identifies the merge point of multiple branches.

The jj workspace list command now displays workspace roots by default. A new try(expr, fallback...) template function suppresses runtime errors. jj run now processes revisions from oldest to newest by default. New flags include --passthrough, --ignore-changes, and --ignore-errors. The file search command now supports -n/--line-number to prefix matches with line numbers.

New commands for managing tags include jj tag track/untrack. Builtin_log() is now an alias for the default jj log revset. revsets.log defaults to builtin_log(), allowing custom log revsets to reuse the built-in default. The diff.stat.max-bar-width config option limits the ++-- bar width when using --stat. Recursive alias definitions are now detected more precisely, and aliases can fall back to the default command.

Git temporary files are cleaned up more reliably in the presence of signals. Fixed issues related to Git HEAD mismatch, UTF-8 path names, and configuration reading in copied repos. jj diff and jj status now display renames or copies in merge commits. jj run no longer panics when encountering conflicted commits, preserving the conflict in the rewritten commit.

Finally, jj git import and export in colocated workspaces are now disabled by default to prevent unnecessary race conditions.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at github.com →

More in Tech

More from Thursday 6 August →