Skip to content

⬆️ upgrade Rust crate jj-lib to v0.44.0 - #11

Merged
Odonno merged 1 commit into
mainfrom
renovate/jj-lib-0.x
Aug 30, 2026
Merged

⬆️ upgrade Rust crate jj-lib to v0.44.0#11
Odonno merged 1 commit into
mainfrom
renovate/jj-lib-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
jj-lib (source) dependencies minor =0.43.0=0.44.0

Release Notes

jj-vcs/jj (jj-lib)

v0.44.0

Compare Source

Release highlights
  • Support for fetching and pushing tags has now been stabilized. Tags can be
    tracked or untracked just like bookmarks. Tracked tags are pushed by default.
Breaking changes
  • jj git fetch now fetches tags the same way it fetches bookmarks. Tags are
    fetched as <name>@<remote>, and these remote tags are automatically tracked
    by local tags of the same name. Running jj git fetch in an existing
    repository will re-fetch all tags to initialize the tracking state.

    Git's tagOpt is no longer respected. To disable tag fetching, set
    remotes.<name>.fetch-tags = '~*' in the jj configuration.

  • jj git clone --fetch-tags=all|none|included is removed in favor of
    --tag=PATTERN.

  • jj git push --all now pushes all tags in addition to bookmarks.

  • The WorkspaceRef.root() and RepoPath.absolute() template functions now
    return Option<FsPath> and FsPath respectively, instead of String. The
    path keyword in jj config list templates now returns Option<FsPath>.

  • jj file search now prints every matched line prefixed by the file path,
    instead of only the file paths of files containing a match. Use
    --name-only for 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 version and jj log -n 5 -n 10 now 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 --config and
    jj log -r, are unaffected and still collect all of their values.
    #​8101
    #​9859

Deprecations

None

New features
  • New merge_point() revset function which (similar to fork_point) finds the
    point where multiple branches merge.

  • jj workspace list now shows workspace roots by default. The output can be
    customized with templates.workspace_list or -T, and WorkspaceRef.root()
    returns an optional FsPath value.
    #​9713,
    #​9826

  • New try(expr, fallback...) template function to suppress runtime errors.

  • jj run now processes revisions from oldest to newest by default. The start
    order is guaranteed: each revision begins execution only after the previous
    one has started, even with --jobs higher than 1.

  • jj run gained a --passthrough flag that connects the subprocess's
    stdout/stderr directly to the terminal instead of capturing output.

  • jj run gained a --ignore-changes flag to avoid editing any revisions even
    if the command modifies the working copy.

  • jj run gained a --ignore-errors flag to continue running against the
    remaining revisions even if the command exits with a nonzero exit code.

  • jj file search now supports -n/--line-number to prefix each match with
    its 1-based line number within the file.

  • jj git push gained a --allow-conflicts flag to allow pushing commits
    containing conflicts.

  • New jj tag track/untrack commands to associate local tags with remotes.
    Note that fetched tags are tracked by default.

  • Added builtin_log() revset alias for the built-in default jj log revset.
    revsets.log now defaults to builtin_log(), so custom log revsets can
    reuse the built-in default instead of copying its full expression.

  • Added config option diff.stat.max-bar-width for use with --stat to limit
    the ++-- bar width. In the templating language, diff.stat() can optionally
    take a second (positional or named) argument max_bar_width for an equivalent
    effect.

  • jj absorb now supports --interactive/-i/--tool to let you
    interactively 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 = [], the
    command jj jj jj will resolve to jj. Aliases can also fall back to the
    default command. For example, with the alias i = ["--ignore-working-copy"],
    jj i will resolve to jj --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 acquire
    lock for index file" errors.
    (#​7530)

  • Fixed Git HEAD mismatch after the working copy became immutable.
    #​9827

  • jj now creates a new working-copy revision as soon as the one of the current
    workspace becomes immutable, as well as during snapshotting. This brings the
    behavior closer to jj 0.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 diff and jj status no longer omit a rename or copy in a merge commit
    when 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 run no longer panics when its revset includes a conflicted commit. The
    conflict 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 import and export in colocated workspaces are now disabled by
    default. These commands usually do nothing, but they had a race condition.

Contributors

Thanks to the people who made this release happen!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/jj-lib-0.x branch from b5ceec0 to 8dad848 Compare August 26, 2026 14:45
@Odonno
Odonno merged commit 77be204 into main Aug 30, 2026
1 of 4 checks passed
@Odonno
Odonno deleted the renovate/jj-lib-0.x branch August 30, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant