v0.22.0
Breaking changes
-
Fixing #4239 means the
ordering of some messages have changed. -
Invalid
ui.graph.style
configuration is now an error. -
The builtin template
branch_list
has been renamed tobookmark_list
as part
of thejj branch
deprecation.
Deprecations
-
jj branch
has been deprecated in favor ofjj bookmark
.Rationale: Jujutsu's branches don't behave like Git branches, which a
confused many newcomers, as they expected a similar behavior given the name.
We've renamed them to "bookmarks" to match the actual behavior, as we think
that describes them better, and they also behave similar to Mercurial's
bookmarks. -
jj obslog
is now calledjj evolution-log
/jj evolog
.jj obslog
remains
as an alias. -
jj unsquash
has been deprecated in favor ofjj squash
and
jj diffedit --restore-descendants
.Rationale:
jj squash
can be used in interactive mode to pull
changes from one commit to another, including from a parent commit
to a child commit. For fine-grained dependent diffs, such as when
the parent and the child commits must successively modify the same
location in a file,jj diffedit --restore-descendants
can be used
to set the parent commit to the desired content without altering the
content of the child commit. -
The
git.push-branch-prefix
config has been deprecated in favor of
git.push-bookmark-prefix
. -
conflict()
andfile()
revsets have been renamed toconflicts()
andfiles()
respectively. The old names are still around and will be removed in a future
release.
New features
-
The new config option
snapshot.auto-track
lets you automatically track only
the specified paths (all paths by default). Use the newjj file track
command to manually tracks path that were not automatically tracked. There is
no way to list untracked files yet. Usegit status
in a colocated workspace
as a workaround.
#323 -
jj fix
now allows fixing unchanged files with the--include-unchanged-files
flag. This
can be used to more easily introduce automatic formatting changes in a new
commit separate from other changes. -
jj workspace add
now accepts a--sparse-patterns=<MODE>
option, which
allows control of the sparse patterns for a newly created workspace:copy
(inherit from parent; default),full
(full working copy), orempty
(the
empty working copy). -
New command
jj workspace rename
that can rename the current workspace. -
jj op log
gained an option to include operation diffs. -
jj git clone
now accepts a--remote <REMOTE NAME>
option, which
allows to set a name for the remote instead of using the default
origin
. -
jj op undo
now reports information on the operation that has been undone. -
jj squash
: the-k
flag can be used as a shorthand for--keep-emptied
. -
CommitId / ChangeId template types now support
.normal_hex()
. -
jj commit
andjj describe
now accept--author
option allowing to quickly change
author of given commit. -
jj diffedit
,jj abandon
, andjj restore
now accept a--restore-descendants
flag. When used, descendants of the edited or deleted commits will keep their original
content. -
jj git fetch -b <remote-git-branch-name>
will now warn if the branch(es)
can not be found in any of the specified/configured remotes. -
jj split
now lets the user select all changes in interactive mode. This may be used
to keeping all changes into the first commit while keeping the current commit
description for the second commit (the newly created empty one). -
Author and committer names are now yellow by default.
Fixed bugs
-
Update working copy before reporting changes. This prevents errors during reporting
from leaving the working copy in a stale state. -
Fixed panic when parsing invalid conflict markers of a particular form.
(#2611) -
Editing a hidden commit now makes it visible.
-
The
present()
revset now suppresses missing working copy error. For example,
present(@)
evaluates tonone()
if the current workspace has no
working-copy commit.
Contributors
Thanks to the people who made this release happen!
- Austin Seipp (@thoughtpolice)
- Danny Hooper (@hooper)
- Emily Shaffer (@nasamuffin)
- Essien Ita Essien (@essiene)
- Ethan Brierley (@eopb)
- Ilya Grigoriev (@ilyagr)
- Kevin Liao (@kevincliao)
- Lukas Wirth (@Veykril)
- Martin von Zweigbergk (@martinvonz)
- Mateusz Mikuła (@mati865)
- mlcui (@mlcui-corp)
- Philip Metzger (@PhilipMetzger)
- Samuel Tardieu (@samueltardieu)
- Stephen Jennings (@jennings)
- Tyler Goffinet (@qubitz)
- Vamsi Avula (@avamsi)
- Yuya Nishihara (@yuja)