Breaking changes
-
In revset aliases, top-level
kind:pattern
expression is now parsed as
modifier. Surround with parentheses if it should be parsed as string/file
pattern. -
Dropped support for automatic upgrade of repo formats used by versions before
0.12.0. -
jj fix
now defaults to the broader revset-s reachable(@, mutable())
instead of-s @
. -
Dropped support for deprecated
jj branch delete
/forget
--glob
option. -
jj branch set
now creates new branch if it doesn't exist. Usejj branch move
to ensure that the target branch already exists.
#3584
Deprecations
-
Replacing
-l
shorthand for--limit
with-n
injj log
,jj op log
andjj obslog
. -
jj split --siblings
is deprecated in favor ofjj split --parallel
(to
matchjj parallelize
). -
A new
jj file
subcommand now replaces several existing uncategorized
commands, which are deprecated.jj file show
replacesjj cat
.jj file chmod
replacesjj chmod
.jj file list
replacesjj files
.
New features
-
Support background filesystem monitoring via watchman triggers enabled with
thecore.watchman.register_snapshot_trigger = true
config. -
Show paths to config files when configuration errors occur.
-
jj fix
now supports configuring the default revset for-s
using the
revsets.fix
config. -
The
descendants()
revset function now accepts an optionaldepth
argument;
like theancestors()
depth argument, it limits the depth of the set. -
Revset/template aliases now support function overloading.
#2966 -
Conflicted files are individually simplified before being materialized.
-
The
jj file
subcommand now contains several existing file utilities.jj file show
, replacingjj cat
.jj file chmod
replacingjj chmod
.jj file list
replacingjj files
.
-
New command
jj branch move
let you update branches by name pattern or source
revision. -
New diff option
jj diff --name-only
allows for easier shell scripting. -
In color-words diffs, hunks are now highlighted with underline. See diff
colors and styles for customization. -
jj git push -c <arg>
can now accept revsets that resolve to multiple
revisions. This means thatjj git push -c xyz -c abc
is now equivalent to
jj git push -c 'all:(xyz | abc)'
. -
jj prev
andjj next
have gained a--conflict
flag which moves you
to the next conflict in a child commit. -
New command
jj git remote set-url
that sets the url of a git remote. -
Author timestamp is now reset when rewriting discardable commits (empty
commits with no description) if authored by the current user.
#2000 -
jj commit
now accepts--reset-author
option to matchjj describe
. -
jj squash
now accepts a--keep-emptied
option to keep the source commit.
Fixed bugs
-
jj git push
now ignores immutable commits when checking whether a
to-be-pushed commit has conflicts, or has no description / committer / author
set. #3029 -
jj
will look for divergent changes outside the short prefix set even if it
finds the change id inside the short prefix set.
#2476
Contributors
Thanks to the people who made this release happen!
- Austin Seipp (@thoughtpolice)
- Benjamin Tan (@bnjmnt4n)
- Daniel Ploch (@torquestomp)
- Danny Hooper (@hooper)
- Ilya Grigoriev (@ilyagr)
- James Sully (@sullyj3)
- Jonathan Tan (@jonathantanmy)
- Kyle J Strand (@BatmanAoD)
- Manuel Caldeira (@KiitoX)
- Martin von Zweigbergk (@martinvonz)
- Matt Kulukundis (@fowles)
- Matt Stark (@matts1)
- mlcui (@mlcui-corp)
- Philip Metzger (@PhilipMetzger)
- Scott Taylor (@scott2000)
- Simon Wollwage (@Kintaro)
- Tal Pressman (@tp-woven)
- Yuya Nishihara (@yuja)