v0.33.0 #7411
thoughtpolice
started this conversation in
General
v0.33.0
#7411
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.
Release highlights
jj undo
is now sequential: invoking it multiple times in sequencerepeatedly undoes actions in the operation log. Previously,
jj undo
wouldonly undo the most recent operation in the operation log. As a result, a new
jj redo
command has been added.Experimental support for improving query performance over filesets and file
queries (like
jj log path/to/file.txt
) has been added. This is not enabledby default. To enable this, you must use the
jj debug index-changed-paths
command.
Breaking changes
jj evolog
templates now acceptCommitEvolutionEntry
as context type. Toget
Commit
properties, usecommit.<method>()
. To customize the defaultoutput, set
templates.evolog
instead oftemplates.log
.jj op show
now usestemplates.op_show
configuration for its default templateinstead of
templates.op_log
.The deprecated config option
git.auto-local-branch
has been removed. Usegit.auto-local-bookmark
instead.The deprecated
Signature.username()
template method has been removed. UseSignature.email().local()
instead.The deprecated
--config-toml
flag has been removed. Use--config=NAME=VALUE
or--config-file=PATH
instead.jj undo
can now undo multiple operations progressively by calling itrepeatedly, whereas previously, running
jj undo
twice was previously a no-op(it only undid the last change).
jj git fetch
will now only fetch the refspec patterns configured on remoteswhen the
--bookmark
option is omitted. Only simple refspec patterns arecurrently supported, and anything else (like refspecs which rename branches)
will be ignored.
The
conflict
label used for coloring log graph nodes was renamed toconflicted
.Deprecations
The on-disk index format has changed.
jj
will write index files in both oldand new formats, so old
jj
versions should be able to read these indexfiles. This compatibility layer will be removed in a future release.
jj op undo
is deprecated in favor ofjj op revert
. (jj undo
is stillavailable, but with new semantics. See also the breaking changes above.)
The argument
<operation>
ofjj undo
is deprecated in favor ofjj op revert <operation>
.The
--what
flag onjj undo
is deprecated. Consider usingjj op restore --what
instead.New features
The new command
jj redo
can progressively redo operations that werepreviously undone by multiple calls to
jj undo
.Templates now support
any()
andall()
methods on lists to check whetherany or all elements satisfy a predicate. Example:
parents.any(|c| c.mine())
returns true if any parent commit is authored by the user.
Add experimental support for indexing changed paths, which will speed up
jj log PATH
query,jj file annotate
, etc. The changed-path index can beenabled by
jj debug index-changed-paths
command. Indexing may take tens ofminutes depending on the number of merge commits. The indexing command UI is
subject to change. #4674
jj config list
now supports-T'json(self) ++ "\n"'
serialization output.jj file show
now accepts-T
/--template
option to insert file metadata.The template language now allows arbitrary whitespace between any operators.
The new configuration option
git.colocate=boolean
controls whether or notGit repositories are colocated by default.
Both
jj git clone
andjj git init
now take a--no-colocate
flag todisable colocation (in case
git.colocate
is set totrue
.)jj git remote add
andjj git clone
now support--fetch-tags
to controlwhen tags are fetched for all subsequent fetches.
jj git fetch
now supports--tracked
to fetch only tracked bookmarks.jj diff --stat
now shows the change in size to binary files.jj interdiff
,jj evolog -p
, andjj op log -p
now show diff of commitdescriptions.
jj log
andjj op log
output can now be anonymized with thebuiltin_log_redacted
andbuiltin_op_log_redacted
templates.jj git init
now checks for anupstream
remote in addition toorigin
whensetting the repository-level
trunk()
alias. Theupstream
remote takesprecedence over
origin
if both exist.Add the
jj metaedit
command, which modifies a revision's metadata. This canbe used to generate a new change-id, which may help resolve some divergences.
It also has options to modify author name, email and timestamp, as well as to
modify committer timestamp.
Filesets now support case-insensitive glob patterns with the
glob-i:
,cwd-glob-i:
, androot-glob-i:
pattern kinds. For example,glob-i:"*.rs"
will match both
file.rs
andFILE.RS
.jj op show
now accepts-T
/--template
option to customize the operationoutput using template expressions, similar to
jj op log
. Also added--no-op-diff
flag to suppress the operation diff.A nearly identical string pattern system as revsets is now supported in the
template language, and is exposed as
string.match(pattern)
.Fixed bugs
jj git clone
now correctly fetches all tags, unless--fetch-tags
isexplicitly specified, in which case the specified option will apply for both
the initial clone and subsequent fetches.
Operation and working-copy state files are now synchronized to disk on save.
This will mitigate data corruption on system crash.
#4423
Packaging changes
remove them as dependencies if present.
Contributors
This discussion was created from the release v0.33.0.
Beta Was this translation helpful? Give feedback.
All reactions