Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## [0.23.0] - 2024-11-06 ### Security fixes * Fixed path traversal by cloning/checking out crafted Git repository containing `..`, `.jj`, `.git` paths. ([GHSA-88h5-6w7m-5w56](https://github.com/martinvonz/jj/security/advisories/GHSA-88h5-6w7m-5w56);CVE-2024-51990) ### Breaking changes * Revset function names can no longer start with a number. * Evaluation error of `revsets.short-prefixes` configuration is now reported. * The `HEAD@git` symbol no longer resolves to the Git HEAD revision. Use `git_head()` or `@-` revset expression instead. The `git_head` template keyword now returns a boolean. * Help command doesn't work recursively anymore, i.e. `jj workspace help root` doesn't work anymore. * The color label `op_log` from the `[colors]` config section now **only** applies to the op log and not to the other places operations are displayed. In almost all cases, if you configured `op_log` before, you should use the new `operation` label instead. * Default operation log template now shows end times of operations instead of start times. ### Deprecations * `git.auto-local-bookmark` replaces `git.auto-local-branch`. The latter remains supported for now (at lower precedence than the former). ### New features * Added diff options to ignore whitespace when comparing lines. Whitespace changes are still highlighted. * New command `jj simplify-parents` will remove redundant parent edges. * `jj squash` now supports `-f/-t` shorthands for `--from/--[in]to`. * Initial support for shallow Git repositories has been implemented. However, deepening the history of a shallow repository is not yet supported. * `jj git clone` now accepts a `--depth <DEPTH>` option, which allows to clone the repository with a given depth. * New command `jj file annotate` that annotates files line by line. This is similar in functionality to `git blame`. Invoke the command with `jj file annotate <file_path>`. The output can be customized via the `templates.annotate_commit_summary` config variable. * `jj bookmark list` gained a `--remote REMOTE` option to display bookmarks belonging to a remote. This option can be combined with `--tracked` or `--conflicted`. * New command `jj config unset` that unsets config values. For example, `jj config unset --user user.name`. * `jj help` now has the flag `--keyword` (shorthand `-k`), which can give help for some keywords (e.g. `jj help -k revsets`). To see a list of the available keywords you can do `jj help --help`. * New `at_operation(op, expr)` revset can be used in order to query revisions based on historical state. * String literals in filesets, revsets and templates now support hex bytes (with `\e` as escape / shorthand for `\x1b`). * New `coalesce(revsets...)` revset which returns commits in the first revset in the `revsets` list that does not evaluate to `none()`. * New template function `raw_escape_sequence(...)` preserves escape sequences. * Timestamp objects in templates now have `after(date) -> Boolean` and `before(date) -> Boolean` methods for comparing timestamps to other dates. * New template functions `pad_start()`, `pad_end()`, `truncate_start()`, and `truncate_end()` are added. * Add a new template alias `bultin_log_compact_full_description()`. * Added the config settings `diff.color-words.context` and `diff.git.context` to control the default number of lines of context shown. ### Fixed bugs * Error on `trunk()` revset resolution is now handled gracefully. [#4616](jj-vcs/jj#4616) * Updated the built-in diff editor `scm-record` to version [0.4.0](https://github.com/arxanas/scm-record/releases/tag/v0.4.0), which includes multiple fixes.
- Loading branch information