v0.17.0
版本发布时间: 2024-05-02 01:11:17
martinvonz/jj最新发布版本:v0.21.0(2024-09-05 01:15:48)
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 short alias-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 to the same function in revsets. It evaluates to true if the email of the commit author matches the currentuser.email
. -
Commit objects in templates now have a
contained_in(revset: String) -> Boolean
method. -
Operation objects in templates now have a
snapshot() -> Boolean
method that evaluates 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 to allow large revsets expressions in some commands, without theall:
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 .
will only 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 the description 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 to customize 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 incorrectly rebase 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 thatsnapshot.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!
- Anton Älgmyr (@algmyr)
- Anton Bulakh (@necauqua)
- Austin Seipp (@thoughtpolice)
- Benjamin Tan (@bnjmnt4n)
- Cretezy (@Cretezy)
- Daniel Ploch (@torquestomp)
- Evan Mesterhazy (@emesterhazy)
- Ilya Grigoriev (@ilyagr)
- Martin von Zweigbergk (@martinvonz)
- Noah Mayr (@noahmayr)
- Jeremy O'Brien (@neutralinsomniac)
- Jonathan Lorimer (@JonathanLorimer)
- Philip Metzger (@PhilipMetzger)
- Poliorcetics (@poliorcetics)
- Rowan Walsh (@rowan-walsh)
- Scott Olson (@solson)
- Théo Daron (@Kaporos)
- Yuya Nishihara (@yuja)
1、 jj-v0.17.0-aarch64-apple-darwin.tar.gz 7.81MB
2、 jj-v0.17.0-docs-html.tar.gz 990.59KB
3、 jj-v0.17.0-x86_64-apple-darwin.tar.gz 8.01MB
4、 jj-v0.17.0-x86_64-pc-windows-msvc.zip 6.06MB