Jujutsu 0.44.0

olexsmir1 pts0 comments

Release v0.44.0 · jj-vcs/jj · GitHub

//releases/show" data-turbo-transient="true" />

Skip to content

Type / to search

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Uh oh!

There was an error while loading. Please reload this page.

jj-vcs

jj

Public

Notifications<br>You must be signed in to change notification settings

Fork<br>1.2k

Star<br>30.8k

v0.44.0

Latest

Latest

Compare

Choose a tag to compare

Sorry, something went wrong.

Filter

Loading

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

No results found

View all tags

martinvonz

released this

06 Aug 01:42

v0.44.0

af45d57

About

jj is a Git-compatible version control system that is both simple and powerful. See

the installation instructions to get started.

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 @, 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..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 and FsPath respectively, instead of String. The

path keyword in jj config list templates now returns Option.

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

tags default reload fetch file alias

Related Articles