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.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
Improved Git push/fetch compatibility by spawning an external
git
process.This can be enabled by the
git.subprocess=true
config knob, and will be thedefault in a future release.
jj log
can now show cryptographic commit signatures. The output can becontrolled by the
ui.show-cryptographic-signatures=true
config knob.Breaking changes
jj abandon
now deletes bookmarks pointing to the revisions to be abandoned.Use
--retain-bookmarks
to move bookmarks backwards. If deleted bookmarkswere tracking remote bookmarks, the associated bookmarks (or branches) will be
deleted from the remote on
jj git push --all
.#3505
jj init --git
andjj init --git-repo
have been removed. They weredeprecated in early 2024. Use
jj git init
instead.The following deprecated commands have been removed:
jj cat
is replaced byjj file show
.jj chmod
is replaced byjj file chmod
.jj files
is replaced byjj file list
.The deprecated
-l
short alias for--limit
injj log
,jj op log
and
jj obslog
has been removed. The-n
short alias can be used instead.The deprecated
--siblings
options forjj split
has been removed.jj split --parallel
can be used instead.The deprecated
fix.tool-command
config option has been removed.In colocated repos, the Git index now contains the changes from all parents
of the working copy instead of just the first parent (
HEAD
). 2-sidedconflicts from the merged parents are now added to the Git index as conflicts
as well.
The following change introduced in 0.25.0 is reverted:
jj config list
now prints inline tables{ key = value, .. }
literally.Inner items of inline tables are no longer merged across configuration
files.
jj resolve
will now attempt to resolve all conflicted files instead ofresolving the first conflicted file. To resolve a single file, pass a file
path to
jj resolve
.jj util mangen
is replaced withjj util install-man-pages
, which caninstall man pages for all
jj
subcommands to a given path.In
jj config list
template,value
is now typed asConfigValue
, not asString
serialized in TOML syntax.jj git remote add
/set-url
now converts relative Git remote path toabsolute path.
jj log
/op log
now applies-n
/--limit
before the items are reversed.Rationale: It's more useful to see the N most recent commits/operations, and
is more performant. The old behavior can be achieved by
jj log .. | head
.#5403
Upgraded
scm-record
from v0.4.0 to v0.5.0. See release notes athttps://github.com/arxanas/scm-record/releases/tag/v0.5.0.
The builtin pager is switched to
streampager. It can handle large
inputs better and can be configured.
Conflicts materialized in the working copy before
jj 0.19.0
may no longerbe parsed correctly. If you are using version 0.18.0 or earlier, check out a
non-conflicted commit before upgrading to prevent issues.
Deprecations
New features
jj git {push,clone,fetch}
can now spawn an externalgit
subprocess, viathe
git.subprocess = true
config knob. This provides an alternative that,when turned on, fixes SSH bugs when interacting with Git remotes due to
libgit2
s limitations #4979.jj describe
now accepts--edit
.jj evolog
andjj op log
now accept--reversed
.jj restore
now supports-i
/--interactive
selection.jj file list
now supports templating.There is a new
builtin_op_log_oneline
template alias you can pass tojj op log -T
for a more compact output. You can useformat_operation_oneline
andformat_snapshot_operation_oneline
to customize parts of it.New template function
config(name)
to access to configuration variable fromtemplate.
New template function
pad_centered()
to center content within a minimumwidth.
Templater now supports
list.filter(|x| ..)
method.The
diff
commit template keyword now supports custom formatting viadiff.files()
. For example,diff.files().map(|e| e.path().display())
printschanged file paths.
The
diff.stat()
template method now provides methods to get summary values.jj log
can now show cryptographic commit signatures. The output can becontrolled by the
ui.show-cryptographic-signatures=true
config knob. Thesignature template can be customized using
format_detailed_cryptographic_signature(signature)
andformat_short_cryptographic_signature(signature)
.New
git.sign-on-push
config option to automatically sign commits which arebeing pushed to a Git remote.
New
git.push-new-bookmarks
config option to push new bookmarks without--allow-new
.jj status
now shows untracked files when they reside directly under atracked directory. There's still an issue that files under untracked
directories aren't listed. #5389
New
merge-tools.<TOOL>.diff-expected-exit-codes
config option to suppresswarnings from tools exiting with non-zero exit codes.
New
fix.tools.TOOL.enabled
config option to enable/disable tools. This isuseful for defining disabled tools in user configuration that can be enabled
in individual repositories with one config setting.
Added
--into
flag tojj restore
, similarly tojj squash
andjj absorb
. It is equivalent to--to
, but--into
is the recommended name.Italic text is now supported. You can set e.g.
color.error = { fg = "red", italic = true }
in your config.New
author_name
/author_email
/committer_name
/committer_email(pattern)
revset functions to match either name or email field explicitly.
New
subject(pattern)
revset function that matches first line of commitdescriptions.
Conditional configuration now supports
--when.commands
to changeconfiguration based on subcommand.
The Jujutsu documentation site now publishes a schema for the official
configuration file, which can be integrated into your editor for autocomplete,
inline errors, and more.
Please see the documentation for more
on this.
Fixed bugs
jj git fetch
with multiple remotes will now fetch from all remotes beforeimporting refs into the jj repo. This fixes a race condition where the
treatment of a commit that is found in multiple fetch remotes depended on the
order the remotes were specified.
Fixed diff selection by external tools with
jj split
/commit -i FILESETS
.#5252
Conditional configuration now applies when initializing new repository.
#5144
[diff.<format>]
configuration now applies to.diff().<format>()
committemplate methods.
Conflicts at the end of files which don't end with a newline character are
now materialized in a way that can be parsed correctly.
#3968
Bookmark and remote names written by
jj git clone
torevset-aliases.'trunk()'
are now escaped if necessary.#5359
Contributors
Thanks to the people who made this release happen!