v0.17.0 #3610
martinvonz
started this conversation in
General
v0.17.0
#3610
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Breaking changes
The default template aliases were replaced as follows:
builtin_op_log_root(op_id: OperationId)
->format_root_operation(root: Operation)
builtin_log_root(change_id: ChangeId, commit_id: CommitId)
->format_root_commit(root: Commit)
builtin_change_id_with_hidden_and_divergent_info
->format_short_change_id_with_hidden_and_divergent_info(commit: Commit)
The
--revision
option ofjj rebase
is renamed to--revisions
. The shortalias
-r
is still supported.New features
The list of conflicted paths is printed whenever the working copy changes.
This can be disabled with the
--quiet
option.Commit objects in templates now have a
mine() -> Boolean
method analog tothe same function in revsets. It evaluates to true if the email of the commit
author matches the current
user.email
.Commit objects in templates now have a
contained_in(revset: String) -> Boolean
method.Operation objects in templates now have a
snapshot() -> Boolean
method thatevaluates to true if the operation was a snapshot created by a non-mutating
command (e.g.
jj log
).Revsets and templates now support single-quoted raw string literals.
A new config option
ui.always-allow-large-revsets
has been added toallow large revsets expressions in some commands, without the
all:
prefix.A new config option
ui.allow-filesets
has been added to enable "fileset"expressions. Note that filesets are currently experimental,
but will be enabled by default in a future release.
A new global flag
--ignore-immutable
lets you rewrite immutable commits.New command
jj parallelize
that rebases a set of revisions into siblings.jj status
now supports filtering by paths. For example,jj status .
willonly list changed files that are descendants of the current directory.
jj prev
andjj next
now work when the working copy revision is a merge.jj squash
now accepts a--use-destination-message/-u
option that uses thedescription of the destination for the new squashed revision and discards the
descriptions of the source revisions.
You can check whether Watchman fsmonitor is enabled or installed with the new
jj debug watchman status
command.jj rebase
now accepts revsets resolving to multiple revisions with the--revisions
/-r
option.jj rebase -r
now accepts--insert-after
and--insert-before
options tocustomize the location of the rebased revisions.
Fixed bugs
Revsets now support
\
-escapes in string literal.The builtin diff editor now allows empty files to be selected during
jj split
.Fixed a bug with
jj split
introduced in 0.16.0 that caused it to incorrectlyrebase the children of the revision being split if they had other parents
(i.e. if the child was a merge).
The
snapshot.max-new-file-size
option can now handle raw integer literals,interpreted as a number of bytes, where previously it could only handle string
literals. This means that
snapshot.max-new-file-size="1"
andsnapshot.max-new-file-size=1
are now equivalent.jj squash <path>
is now a no-op if the path argument didn't match any paths(it used to create new commits with bumped timestamp).
#3334
Contributors
Thanks to the people who made this release happen!
This discussion was created from the release v0.17.0.
Beta Was this translation helpful? Give feedback.
All reactions