Breaking changes
-
Fixing #4239 means the
ordering of some messages have changed. -
Invalid
ui.graph.styleconfiguration is now an error. -
The builtin template
branch_listhas been renamed tobookmark_listas part
of thejj branchdeprecation.
Deprecations
-
jj branchhas 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 obslogis now calledjj evolution-log/jj evolog.jj obslogremains
as an alias. -
jj unsquashhas been deprecated in favor ofjj squashand
jj diffedit --restore-descendants.Rationale:
jj squashcan 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-descendantscan be used
to set the parent commit to the desired content without altering the
content of the child commit. -
The
git.push-branch-prefixconfig 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-tracklets 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 statusin a colocated workspace
as a workaround.
#323 -
jj fixnow allows fixing unchanged files with the--include-unchanged-filesflag. This
can be used to more easily introduce automatic formatting changes in a new
commit separate from other changes. -
jj workspace addnow 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 renamethat can rename the current workspace. -
jj op loggained an option to include operation diffs. -
jj git clonenow accepts a--remote <REMOTE NAME>option, which
allows to set a name for the remote instead of using the default
origin. -
jj op undonow reports information on the operation that has been undone. -
jj squash: the-kflag can be used as a shorthand for--keep-emptied. -
CommitId / ChangeId template types now support
.normal_hex(). -
jj commitandjj describenow accept--authoroption allowing to quickly change
author of given commit. -
jj diffedit,jj abandon, andjj restorenow 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 splitnow 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)