Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## [0.25.0] - 2025-01-01 ### Release highlights It's the holidays, and this release was overall pretty quiet, without many major changes. Two select improvements: * Improvements to configuration management, including support for [conditional variables](docs/config.md#conditional-variables) in config files. * Large files in the working copy will no longer cause commands to fail; instead the large files will remain intact but untracked in the working copy. ### Breaking changes * Configuration variables are no longer "stringly" typed. For example, `true` is not converted to a string `"true"`, and vice versa. * The following configuration variables are now parsed strictly: `colors.<labels>`, `git.abandon-unreachable-commits`, `git.auto-local-bookmark`, `git.push-bookmark-prefix`, `revsets.log`, `revsets.short-prefixes` `signing.backend`, `operation.hostname`, `operation.username`, `ui.allow-init-native`, `ui.color`, `ui.default-description`, `ui.progress-indicator`, `ui.quiet`, `user.email`, `user.name` * `jj config list` now prints inline tables `{ key = value, .. }` literally. Inner items of inline tables are no longer merged across configuration files. See [the table syntax documentation](docs/config.md#dotted-style-headings-and-inline-tables) for details. * `jj config edit --user` now opens a file even if `$JJ_CONFIG` points to a directory. If there are multiple config files, the command will fail. * `jj config set` no longer accepts a bare string value that looks like a TOML expression. For example, `jj config set NAME '[foo]'` must be quoted as `jj config set NAME '"[foo]"'`. * The deprecated `[alias]` config section is no longer respected. Move command aliases to the `[aliases]` section. * `jj absorb` now abandons the source commit if it becomes empty and has no description. ### Deprecations * `--config-toml=TOML` is deprecated in favor of `--config=NAME=VALUE` and `--config-file=PATH`. * The `Signature.username()` template method is deprecated for `Signature().email().local()`. ### New features * `jj` command no longer fails due to new working-copy files larger than the `snapshot.max-new-file-size` config option. It will print a warning and large files will be left untracked. * Configuration files now support [conditional variables](docs/config.md#conditional-variables). * New command options `--config=NAME=VALUE` and `--config-file=PATH` to set string value without quoting and to load additional configuration from files. * Templates now support the `>=`, `>`, `<=`, and `<` relational operators for `Integer` types. * A new Email template type is added. `Signature.email()` now returns an Email template type instead of a String. * Adds a new template alias `commit_timestamp(commit)` which defaults to the committer date. * Conflict markers are now allowed to be longer than 7 characters, allowing conflicts to be materialized and parsed correctly in files which already contain lines that look like conflict markers. * New `$marker_length` variable to allow merge tools to support longer conflict markers (equivalent to "%L" for Git merge drivers). * `jj describe` now accepts a `JJ: ignore-rest` line that ignores everything below it, similar to a "scissor line" in git. When editing multiple commits, only ignore until the next `JJ: describe` line. ### Fixed bugs * The `$NO_COLOR` environment variable must now be non-empty to be respected. * Fixed incompatible rendering of empty hunks in git/unified diffs. [#5049](jj-vcs/jj#5049) * Fixed performance of progress bar rendering when fetching from Git remote. [#5057](jj-vcs/jj#5057) * `jj config path --user` no longer creates new file at the default config path. * On Windows, workspace paths (printed by `jj root`) no longer use UNC-style `\\?\` paths unless necessary. * On Windows, `jj git clone` now converts local Git remote path to slash-separated path. * `jj resolve` no longer removes the executable bit on resolved files when using an external merge tool.
- Loading branch information