v0.20.0
版本发布时间: 2024-08-08 01:21:33
martinvonz/jj最新发布版本:v0.21.0(2024-09-05 01:15:48)
Note to packagers
-
jj
now linkslibgit2
statically by default. To use dynamic linking, you need to set the environment variableLIBGIT2_NO_VENDOR=1
while compiling. (#4163)
Breaking changes
-
jj rebase --skip-empty
has been renamed tojj rebase --skip-emptied
-
jj backout --revision
has been renamed tojj backout --revisions
. The short alias-r
is still supported. -
The default
immutable_heads()
set now includesuntracked_remote_branches()
with the assumption that untracked branches aren't managed by you. Therefore, untracked branches are no longer displayed injj log
by default. -
Updated defaults for graph node symbol templates
templates.log_node
andtemplates.op_log_node
. -
The "fileset" language is now enabled by default. It can still be disable by setting
ui.allow-filesets=false
. -
On
jj git fetch
/import
, commits referred to byHEAD@git
are no longer preserved. If a checked-out named branch gets deleted locally or remotely, the corresponding commits will be abandoned. -
jj --at-op=@
no longer merges concurrent operations if explicitly specified. -
jj obslog -p
no longer shows diffs at non-partial squash operations. Previously, it showed the same diffs as the second predecessor.
Deprecations
- The original configuration syntax for
jj fix
is now deprecated in favor of one that allows defining multiple tools that can affect different filesets. These can be used in combination for now. Seejj help fix
for details.
New features
-
External diff tools can now be configured to invoke the tool on each file individually instead of being passed a directory by setting
merge-tools.$TOOL.diff-invocation-mode="file-by-file"
in config.toml. -
In git diffs, word-level hunks are now highlighted with underline. See diff colors and styles for customization.
-
New
.diff().<format>()
commit template methods are added. They can be used in order to show diffs conditionally. For example,if(current_working_copy, diff.summary())
. -
jj git clone
andjj git init
with an existing git repository adds the default branch of the remote as repository settings forrevset-aliases."trunk()"
.` -
jj workspace forget
now abandons the workspace's working-copy commit if it was empty. -
jj backout
now includes the backed out commit's subject in the new commit message. -
jj backout
can now back out multiple commits at once. -
jj git clone some/nested/path
now creates the full directory tree for nested destination paths if they don't exist. -
String patterns now support case‐insensitive matching by suffixing any pattern kind with
-i
.mine()
uses case‐insensitive matching on your email address unconditionally. Only ASCII case folding is currently implemented, but this will likely change in the future. -
String patterns now support
regex:"pattern"
. -
New
tracked_remote_branches()
anduntracked_remote_branches()
revset functions can be used to select tracked/untracked remote branches. -
The
file()
revset function now accepts fileset as argument. -
New
diff_contains()
revset function can be used to search diffs. -
New command
jj operation diff
that can compare changes made between two operations. -
New command
jj operation show
that can show the changes made in a single operation. -
New config setting
git.private-commits
to prevent commits from being pushed. -
The default commit description template can now be configured by
templates.draft_commit_description
. -
jj fix
can now be configured to run different tools on different filesets. This simplifies the use case of configuring code formatters for specific file types. Seejj help fix
for details. -
Added revset functions
author_date
andcommitter_date
. -
jj describe
can now update the description of multiple commits.
Fixed bugs
-
jj status
will show different messages in a conflicted tree, depending on the state of the working commit. In particular, if a child commit fixes a conflict in the parent, this will be reflected in the hint provided byjj status
-
jj diff --git
no longer shows the contents of binary files. -
Windows binaries no longer require
vcruntime140.dll
to be installed (normally through Visual Studio.) -
On quit, the builtin pager no longer waits for all outputs to be discarded.
-
jj branch rename
no longer shows a warning in colocated repos.
Contributors
Thanks to the people who made this release happen!
- Anton Älgmyr (@algmyr)
- Austin Seipp (@thoughtpolice)
- Benjamin Tan (@bnjmnt4n)
- Daniel Ploch (@torquestomp)
- Danny Hooper (@hooper)
- Emily (@emilazy)
- Essien Ita Essien (@essiene)
- Erich Gubler (@ErichDonGubler)
- Fedor Sheremetyev (@sheremetyev)
- Ilya Grigoriev (@ilyagr)
- Jonathan Tan (@jonathantanmy)
- Julien Vincent (@julienvincent)
- Martin von Zweigbergk (@martinvonz)
- Matt Kulukundis (@fowles)
- Matt Stark (@matts1)
- mlcui (@mlcui-corp)
- Philip Metzger (@PhilipMetzger)
- Scott Taylor (@scott2000)
- Skyler Grey (@Minion3665)
- Stephen Jennings (@jennings)
- Tim Janik (@tim-janik)
- Vincent Ging Ho Yim (@cenviity)
- Vladimír Čunát (@vcunat)
- Vladimir (@0xdeafbeef)
- Yuya Nishihara (@yuja)
1、 jj-v0.20.0-aarch64-apple-darwin.tar.gz 8.51MB
2、 jj-v0.20.0-aarch64-unknown-linux-musl.tar.gz 9.74MB
3、 jj-v0.20.0-docs-html.tar.gz 1.04MB
4、 jj-v0.20.0-x86_64-pc-windows-msvc.zip 6.85MB