⬆️ upgrade Rust crate jj-lib to v0.44.0 - #11
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/jj-lib-0.x
branch
from
August 26, 2026 14:45
b5ceec0 to
8dad848
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
=0.43.0→=0.44.0Release Notes
jj-vcs/jj (jj-lib)
v0.44.0Compare Source
Release highlights
tracked or untracked just like bookmarks. Tracked tags are pushed by default.
Breaking changes
jj git fetchnow fetches tags the same way it fetches bookmarks. Tags arefetched as
<name>@<remote>, and these remote tags are automatically trackedby local tags of the same name. Running
jj git fetchin an existingrepository will re-fetch all tags to initialize the tracking state.
Git's
tagOptis no longer respected. To disable tag fetching, setremotes.<name>.fetch-tags = '~*'in the jj configuration.jj git clone --fetch-tags=all|none|includedis removed in favor of--tag=PATTERN.jj git push --allnow pushes all tags in addition to bookmarks.The
WorkspaceRef.root()andRepoPath.absolute()template functions nowreturn
Option<FsPath>andFsPathrespectively, instead ofString. Thepathkeyword injj config listtemplates now returnsOption<FsPath>.jj file searchnow prints every matched line prefixed by the file path,instead of only the file paths of files containing a match. Use
--name-onlyfor the previous behavior.#9399
Passing an argument more than once is no longer an error. The last occurrence
wins, so
jj --no-pager --no-pager versionandjj log -n 5 -n 10now work,and an argument baked into an alias or a wrapper can be given explicitly as
well. Arguments that can be specified multiple times, such as
--configandjj log -r, are unaffected and still collect all of their values.#8101
#9859
Deprecations
None
New features
New
merge_point()revset function which (similar tofork_point) finds thepoint where multiple branches merge.
jj workspace listnow shows workspace roots by default. The output can becustomized with
templates.workspace_listor-T, andWorkspaceRef.root()returns an optional
FsPathvalue.#9713,
#9826
New
try(expr, fallback...)template function to suppress runtime errors.jj runnow processes revisions from oldest to newest by default. The startorder is guaranteed: each revision begins execution only after the previous
one has started, even with
--jobshigher than 1.jj rungained a--passthroughflag that connects the subprocess'sstdout/stderr directly to the terminal instead of capturing output.
jj rungained a--ignore-changesflag to avoid editing any revisions evenif the command modifies the working copy.
jj rungained a--ignore-errorsflag to continue running against theremaining revisions even if the command exits with a nonzero exit code.
jj file searchnow supports-n/--line-numberto prefix each match withits 1-based line number within the file.
jj git pushgained a--allow-conflictsflag to allow pushing commitscontaining conflicts.
New
jj tag track/untrackcommands to associate local tags with remotes.Note that fetched tags are tracked by default.
Added
builtin_log()revset alias for the built-in defaultjj logrevset.revsets.lognow defaults tobuiltin_log(), so custom log revsets canreuse the built-in default instead of copying its full expression.
Added config option
diff.stat.max-bar-widthfor use with--statto limitthe
++--bar width. In the templating language,diff.stat()can optionallytake a second (positional or named) argument
max_bar_widthfor an equivalenteffect.
jj absorbnow supports--interactive/-i/--toolto let youinteractively choose which hunks from the source to consider for absorption.
This is useful when you only want to absorb part of a commit without first
splitting it. Any hunks that are not selected or cannot be absorbed remain in
the source commit.
Fixed bugs
Recursive alias definitions are detected more precisely. jj can now expand
aliases that are simply repeated. For example, with the alias
jj = [], thecommand
jj jj jjwill resolve tojj. Aliases can also fall back to thedefault command. For example, with the alias
i = ["--ignore-working-copy"],jj iwill resolve tojj --ignore-working-copy.Git temporary files are now cleaned up more reliably in the presence of
signals (e.g.
Ctrl-C). This should reduce the rate of "Could not acquirelock for index file" errors.
(#7530)
Fixed Git HEAD mismatch after the working copy became immutable.
#9827
jjnow creates a new working-copy revision as soon as the one of the currentworkspace becomes immutable, as well as during snapshotting. This brings the
behavior closer to
jj0.42 and earlier.Snapshotting no longer fails if the working copy contains a path whose name
isn't valid UTF-8. Such paths can't be tracked, so they are now skipped and
reported as a warning instead.
#9774
Fixed failure when reading configuration in copied repo with an empty
repo-level configuration directory.
jj diffandjj statusno longer omit a rename or copy in a merge commitwhen the renamed source is present in more than one parent. The identical copy
record reported for each parent was mistaken for a conflict and discarded.
#9752
jj runno longer panics when its revset includes a conflicted commit. Theconflict is now preserved in the rewritten commit.
#9747
Fixed a panic when passing overly-large length parameters to ID templater
functions (
commit_id.short(),commit_id.shortest(), etc.).#9833
jj git importandexportin colocated workspaces are now disabled bydefault. These commands usually do nothing, but they had a race condition.
Contributors
Thanks to the people who made this release happen!
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.