v0.25.0 #5229
thoughtpolice
started this conversation in
General
v0.25.0
#5229
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
About
jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started.
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 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
isnot 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 for details.
jj config edit --user
now opens a file even if$JJ_CONFIG
points to adirectory. If there are multiple config files, the command will fail.
jj config set
no longer accepts a bare string value that looks like a TOMLexpression. For example,
jj config set NAME '[foo]'
must be quoted asjj config set NAME '"[foo]"'
.The deprecated
[alias]
config section is no longer respected. Move commandaliases to the
[aliases]
section.jj absorb
now abandons the source commit if it becomes empty and has nodescription.
Deprecations
--config-toml=TOML
is deprecated in favor of--config=NAME=VALUE
and--config-file=PATH
.The
Signature.username()
template method is deprecated forSignature().email().local()
.New features
jj
command no longer fails due to new working-copy files larger than thesnapshot.max-new-file-size
config option. It will print a warning and largefiles will be left untracked.
Configuration files now support conditional variables.
New command options
--config=NAME=VALUE
and--config-file=PATH
to setstring value without quoting and to load additional configuration from files.
Templates now support the
>=
,>
,<=
, and<
relational operators forInteger
types.A new Email template type is added.
Signature.email()
now returns an Emailtemplate type instead of a String.
Adds a new template alias
commit_timestamp(commit)
which defaults to thecommitter 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 conflictmarkers (equivalent to "%L" for Git merge drivers).
jj describe
now accepts aJJ: ignore-rest
line that ignores everythingbelow 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
Fixed performance of progress bar rendering when fetching from Git remote. #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 toslash-separated path.
jj resolve
no longer removes the executable bit on resolved files when usingan external merge tool.
Contributors
Thanks to the people who made this release happen!
This discussion was created from the release v0.25.0.
Beta Was this translation helpful? Give feedback.
All reactions