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 undois now sequential: invoking it multiple times in sequencerepeatedly undoes actions in the operation log. Previously,
jj undowouldonly undo the most recent operation in the operation log. As a result, a new
jj redocommand 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-pathscommand.
Breaking changes
jj evologtemplates now acceptCommitEvolutionEntryas context type. Toget
Commitproperties, usecommit.<method>(). To customize the defaultoutput, set
templates.evologinstead oftemplates.log.jj op shownow usestemplates.op_showconfiguration for its default templateinstead of
templates.op_log.The deprecated config option
git.auto-local-branchhas been removed. Usegit.auto-local-bookmarkinstead.The deprecated
Signature.username()template method has been removed. UseSignature.email().local()instead.The deprecated
--config-tomlflag has been removed. Use--config=NAME=VALUEor--config-file=PATHinstead.jj undocan now undo multiple operations progressively by calling itrepeatedly, whereas previously, running
jj undotwice was previously a no-op(it only undid the last change).
jj git fetchwill now only fetch the refspec patterns configured on remoteswhen the
--bookmarkoption is omitted. Only simple refspec patterns arecurrently supported, and anything else (like refspecs which rename branches)
will be ignored.
The
conflictlabel used for coloring log graph nodes was renamed toconflicted.Deprecations
The on-disk index format has changed.
jjwill write index files in both oldand new formats, so old
jjversions should be able to read these indexfiles. This compatibility layer will be removed in a future release.
jj op undois deprecated in favor ofjj op revert. (jj undois stillavailable, but with new semantics. See also the breaking changes above.)
The argument
<operation>ofjj undois deprecated in favor ofjj op revert <operation>.The
--whatflag onjj undois deprecated. Consider usingjj op restore --whatinstead.New features
The new command
jj redocan 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 PATHquery,jj file annotate, etc. The changed-path index can beenabled by
jj debug index-changed-pathscommand. Indexing may take tens ofminutes depending on the number of merge commits. The indexing command UI is
subject to change. #4674
jj config listnow supports-T'json(self) ++ "\n"'serialization output.jj file shownow accepts-T/--templateoption to insert file metadata.The template language now allows arbitrary whitespace between any operators.
The new configuration option
git.colocate=booleancontrols whether or notGit repositories are colocated by default.
Both
jj git cloneandjj git initnow take a--no-colocateflag todisable colocation (in case
git.colocateis set totrue.)jj git remote addandjj git clonenow support--fetch-tagsto controlwhen tags are fetched for all subsequent fetches.
jj git fetchnow supports--trackedto fetch only tracked bookmarks.jj diff --statnow shows the change in size to binary files.jj interdiff,jj evolog -p, andjj op log -pnow show diff of commitdescriptions.
jj logandjj op logoutput can now be anonymized with thebuiltin_log_redactedandbuiltin_op_log_redactedtemplates.jj git initnow checks for anupstreamremote in addition tooriginwhensetting the repository-level
trunk()alias. Theupstreamremote takesprecedence over
originif both exist.Add the
jj metaeditcommand, 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.rsandFILE.RS.jj op shownow accepts-T/--templateoption to customize the operationoutput using template expressions, similar to
jj op log. Also added--no-op-diffflag 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 clonenow correctly fetches all tags, unless--fetch-tagsisexplicitly 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