@@ -6,11 +6,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66and this project adheres
77to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
88
9-
109## [ Unreleased]
1110
1211### Breaking changes
1312
13+ ### Deprecations
14+
15+ ### New features
16+
17+ ### Fixed bugs
18+
19+ ## [ 0.23.0] - 2024-11-06
20+
21+ ### Security fixes
22+
23+ * Fixed path traversal by cloning/checking out crafted Git repository containing
24+ ` .. ` , ` .jj ` , ` .git ` paths.
25+ ([ GHSA-88h5 -6w7m-5w56] ( https://github.com/martinvonz/jj/security/advisories/GHSA-88h5-6w7m-5w56 ) ;CVE-2024 -51990)
26+
27+ ### Breaking changes
28+
1429* Revset function names can no longer start with a number.
1530
1631* Evaluation error of ` revsets.short-prefixes ` configuration is now reported.
@@ -42,52 +57,52 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4257
4358* New command ` jj simplify-parents ` will remove redundant parent edges.
4459
45- * New ` at_operation(op, expr) ` revset can be used in order to query revisions
46- based on historical state.
47-
4860* ` jj squash ` now supports ` -f/-t ` shorthands for ` --from/--[in]to ` .
4961
50- * String literals in filesets, revsets and templates now support hex bytes
51- (with ` \e ` as escape / shorthand for ` \x1b ` ).
52-
53- * New template function ` raw_escape_sequence(...) ` preserves escape sequences.
54-
55- * Initial support for shallow git repositories has been implemented. However
62+ * Initial support for shallow Git repositories has been implemented. However,
5663 deepening the history of a shallow repository is not yet supported.
5764
5865* ` jj git clone ` now accepts a ` --depth <DEPTH> ` option, which
5966 allows to clone the repository with a given depth.
6067
6168* New command ` jj file annotate ` that annotates files line by line. This is similar
62- in functionality to git's blame. Invoke the command with ` jj file annotate <file_path> ` .
69+ in functionality to ` git blame ` . Invoke the command with ` jj file annotate <file_path> ` .
6370 The output can be customized via the ` templates.annotate_commit_summary `
6471 config variable.
6572
73+ * ` jj bookmark list ` gained a ` --remote REMOTE ` option to display bookmarks
74+ belonging to a remote. This option can be combined with ` --tracked ` or
75+ ` --conflicted ` .
76+
77+ * New command ` jj config unset ` that unsets config values. For example,
78+ ` jj config unset --user user.name ` .
79+
80+ * ` jj help ` now has the flag ` --keyword ` (shorthand ` -k ` ), which can give help
81+ for some keywords (e.g. ` jj help -k revsets ` ). To see a list of the available
82+ keywords you can do ` jj help --help ` .
83+
84+ * New ` at_operation(op, expr) ` revset can be used in order to query revisions
85+ based on historical state.
86+
87+ * String literals in filesets, revsets and templates now support hex bytes
88+ (with ` \e ` as escape / shorthand for ` \x1b ` ).
89+
6690* New ` coalesce(revsets...) ` revset which returns commits in the first revset
6791 in the ` revsets ` list that does not evaluate to ` none() ` .
6892
93+ * New template function ` raw_escape_sequence(...) ` preserves escape sequences.
94+
6995* Timestamp objects in templates now have ` after(date) -> Boolean ` and
7096 ` before(date) -> Boolean ` methods for comparing timestamps to other dates.
7197
7298* New template functions ` pad_start() ` , ` pad_end() ` , ` truncate_start() ` , and
7399 ` truncate_end() ` are added.
74100
75- * ` jj bookmark list ` gained a ` --remote REMOTE ` option to display bookmarks
76- belonging to a remote. This option can be combined with ` --tracked ` or
77- ` --conflicted ` .
101+ * Add a new template alias ` bultin_log_compact_full_description() ` .
78102
79103* Added the config settings ` diff.color-words.context ` and ` diff.git.context ` to
80104 control the default number of lines of context shown.
81105
82- * Add a new template alias ` bultin_log_compact_full_description() ` .
83-
84- * New command ` jj config unset ` that unsets config values. For example,
85- ` jj config unset --user user.name ` .
86-
87- * ` jj help ` now has the flag ` --keyword ` (shorthand ` -k ` ), which can give help
88- for some keywords (e.g. ` jj help -k revsets ` ). To see a list of the available
89- keywords you can do ` jj help --help ` .
90-
91106### Fixed bugs
92107
93108* Error on ` trunk() ` revset resolution is now handled gracefully.
@@ -97,8 +112,39 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
97112 [ 0.4.0] ( https://github.com/arxanas/scm-record/releases/tag/v0.4.0 ) , which
98113 includes multiple fixes.
99114
100- * Fixed path traversal by cloning/checking out crafted Git repository containing
101- ` .. ` , ` .jj ` , ` .git ` paths.
115+ ### Contributors
116+
117+ Thanks to the people who made this release happen!
118+
119+ * Alec Snyder (@allonsy )
120+ * Arthur Grillo (Grillo-0)
121+ * Austin Seipp (@thoughtpolice )
122+ * Benjamin Tan (@bnjmnt4n )
123+ * Dave Townsend (@Mossop )
124+ * Daniel Ploch (@torquestomp )
125+ * Emily (@neongreen )
126+ * Essien Ita Essien (@essiene )
127+ * Fedor Sheremetyev (@sheremetyev )
128+ * Ilya Grigoriev (@ilyagr )
129+ * Jakub Okoński (@farnoy )
130+ * Jcparkyn (@Jcparkyn )
131+ * Joaquín Triñanes (@JoaquinTrinanes )
132+ * Lukas Wirth (@Veykril )
133+ * Marco Neumann (@crepererum )
134+ * Martin von Zweigbergk (@martinvonz )
135+ * Matt Stark (@matts1 )
136+ * Philip Metzger (@PhilipMetzger )
137+ * Philipp Albrecht (@pylbrecht )
138+ * Remo Senekowitsch (@senekor )
139+ * Richard Macklin (@rmacklin )
140+ * Robin Stocker (@robinst )
141+ * Samuel Tardieu (@samueltardieu )
142+ * Sora (@SoraTenshi )
143+ * Stephen Jennings (@jennings )
144+ * Theodore Ehrenborg (@TheodoreEhrenborg )
145+ * Vamsi Avula (@avamsi )
146+ * Vincent Ging Ho Yim (@cenviity )
147+ * Yuya Nishihara (@yuja )
102148
103149## [ 0.22.0] - 2024-10-02
104150
0 commit comments