You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.
Release highlights
Workspaces can now have their own separate configuration. For instance, you
can use jj config set --workspace to update a configuration option only in
the current workspace.
After creating a local bookmark, it is now possible to use jj bookmark track
to associate the bookmark with a specific remote before pushing it. When
pushing a tracked bookmark, it is not necessary to use --allow-new.
The new jj git colocation enable and jj git colocation disable commands
allow converting between colocated and non-colocated workspaces.
Breaking changes
The remote_bookmarks(remote=pattern) revset now includes Git-tracking
bookmarks if the specified pattern matches git. The default is remote=~exact:"git" as before.
The deprecated flag --summary of jj abandon has been removed.
The deprecated command jj backout has been removed, use jj revert instead.
The following deprecated config options have been removed:
signing.sign-all
core.watchman.register_snapshot_trigger
diff.format
Deprecations
jj bisect run --command <cmd> is deprecated in favor of jj bisect run -- <cmd>.
jj metaedit --update-committer-timestamp was renamed to jj metaedit --force-rewrite since the old name (and help text)
incorrectly suggested that the committer name and email would not
be updated.
New features
Workspaces may have an additional layered configuration, located at .jj/workspace-config.toml. jj config subcommands which took layer options
like --repo now also support --workspace.
jj bookmark track can now associate new local bookmarks with remote.
Tracked bookmarks can be pushed without --allow-new. #7072
The new jj git colocation command provides sub-commands to show the
colocation state (status), to convert a non-colocated workspace into
a colocated workspace (enable), and vice-versa (disable).
New jj tag set/delete commands to create/update/delete tags locally.
Created/updated tags are currently always exported to Git as lightweight
tags. If you would prefer them to be exported as annotated tags, please give
us feedback on #7908.
Templates now support a .split(separator, [limit]) method on strings to
split a string into a list of substrings.
-G is now available as a short form of --no-graph in jj log, jj evolog, jj op log, jj op show and jj op diff.
jj metaedit now accepts -m/--message option to non-interactively update
the change description.
The CryptographicSignature.key() template method now also works for SSH
signatures and returns the corresponding public key fingerprint.
Added template-aliases.empty_commit_marker. Users can override this value in
their config to change the "(empty)" label on empty commits.
Add support for --when.workspaces config scopes.
Add support for --when.hostnames config scopes. This allows configuration to
be conditionally applied based on the hostname set in operation.hostname.
jj bisect run accepts the command and arguments to pass to the command
directly as positional arguments, such as jj bisect --range=..main -- cargo check --all-targets.
Divergent changes are no longer marked red in immutable revisions. Since the
revision is immutable, the user shouldn't take any action, so the red color
was unnecessarily alarming.
New commit template keywords local/remote_tags to show only local/remote
tags. These keywords may be useful in non-colocated Git repositories where
local and exported @git tags can point to different revisions.
jj git clone now supports the --branch option to specify the branch(es)
to fetch during clone. If present, the first matching branch is used as the
working-copy parent.
Revsets now support logical operators in string patterns.
Fixed bugs
jj metaedit --author-timestamp twice with the same value no longer
edits the change twice in some cases.
jj squash: fixed improper revision rebase when both --insert-after and --insert-before were used.
jj undo can now revert "fetch"/"import" operation that involves tag updates. #6325
Fixed parsing of files(expr) revset expression including parentheses. #7747
Fixed jj describe --stdin to append a final newline character.
Contributors
Thanks to the people who made this release happen!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.
Release highlights
Workspaces can now have their own separate configuration. For instance, you
can use
jj config set --workspaceto update a configuration option only inthe current workspace.
After creating a local bookmark, it is now possible to use
jj bookmark trackto associate the bookmark with a specific remote before pushing it. When
pushing a tracked bookmark, it is not necessary to use
--allow-new.The new
jj git colocation enableandjj git colocation disablecommandsallow converting between colocated and non-colocated workspaces.
Breaking changes
The
remote_bookmarks(remote=pattern)revset now includes Git-trackingbookmarks if the specified
patternmatchesgit. The default isremote=~exact:"git"as before.The deprecated flag
--summaryofjj abandonhas been removed.The deprecated command
jj backouthas been removed, usejj revertinstead.The following deprecated config options have been removed:
signing.sign-allcore.watchman.register_snapshot_triggerdiff.formatDeprecations
jj bisect run --command <cmd>is deprecated in favor ofjj bisect run -- <cmd>.jj metaedit --update-committer-timestampwas renamed tojj metaedit --force-rewritesince the old name (and help text)incorrectly suggested that the committer name and email would not
be updated.
New features
Workspaces may have an additional layered configuration, located at
.jj/workspace-config.toml.jj configsubcommands which took layer optionslike
--reponow also support--workspace.jj bookmark trackcan now associate new local bookmarks with remote.Tracked bookmarks can be pushed without
--allow-new.#7072
The new
jj git colocationcommand provides sub-commands to show thecolocation state (
status), to convert a non-colocated workspace intoa colocated workspace (
enable), and vice-versa (disable).New
jj tag set/deletecommands to create/update/delete tags locally.Created/updated tags are currently always exported to Git as lightweight
tags. If you would prefer them to be exported as annotated tags, please give
us feedback on #7908.
Templates now support a
.split(separator, [limit])method on strings tosplit a string into a list of substrings.
-Gis now available as a short form of--no-graphinjj log,jj evolog,jj op log,jj op showandjj op diff.jj metaeditnow accepts-m/--messageoption to non-interactively updatethe change description.
The
CryptographicSignature.key()template method now also works for SSHsignatures and returns the corresponding public key fingerprint.
Added
template-aliases.empty_commit_marker. Users can override this value intheir config to change the "(empty)" label on empty commits.
Add support for
--when.workspacesconfig scopes.Add support for
--when.hostnamesconfig scopes. This allows configuration tobe conditionally applied based on the hostname set in
operation.hostname.jj bisect runaccepts the command and arguments to pass to the commanddirectly as positional arguments, such as
jj bisect --range=..main -- cargo check --all-targets.Divergent changes are no longer marked red in immutable revisions. Since the
revision is immutable, the user shouldn't take any action, so the red color
was unnecessarily alarming.
New commit template keywords
local/remote_tagsto show only local/remotetags. These keywords may be useful in non-colocated Git repositories where
local and exported
@gittags can point to different revisions.jj git clonenow supports the--branchoption to specify the branch(es)to fetch during clone. If present, the first matching branch is used as the
working-copy parent.
Revsets now support logical operators in string patterns.
Fixed bugs
jj metaedit --author-timestamptwice with the same value no longeredits the change twice in some cases.
jj squash: fixed improper revision rebase when both--insert-afterand--insert-beforewere used.jj undocan now revert "fetch"/"import" operation that involves tag updates.#6325
Fixed parsing of
files(expr)revset expression including parentheses.#7747
Fixed
jj describe --stdinto append a final newline character.Contributors
Thanks to the people who made this release happen!
This discussion was created from the release v0.35.0.
Beta Was this translation helpful? Give feedback.
All reactions