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
A new jj converge command was added to help automatically resolve divergent
commits by combining them appropriately.
Breaking changes
jj config {edit,set,unset} --user now targets the first loaded user
configuration file (e.g. ~/.config/jj/config.toml or the first file in conf.d/) instead of prompting interactively when multiple files exist.
Use --file <PATH> to target a specific config file.
jj git import in non-colocated repositories no longer imports commits from a
detached Git HEAD branch.
Deprecations
None
New features
The new jj converge command attempts to automatically resolve divergence by
creating a new commit that replaces the divergent commits. It applies
heuristics to try to automatically come up with a good solution, and falls
back to prompting the user if the heuristics are inconclusive. It can also run
in non-interactive mode, which aborts if prompting would be needed.
jj bisect will now mention when it cannot unambiguously find the first bad
revision due to skips in evaluation.
Git HEAD state is now tracked per worktree internally. This prepares
colocated repositories for support of multiple Git worktrees, where each
jj workspace can have its own Git HEAD. Existing repositories are migrated
automatically.
jj config {edit,set,unset} now support a --file <PATH> option to
target a specific configuration file (such as files inside a conf.d/
directory or loaded via --config-file). This allows precise file targeting
and avoids interactive prompts when multiple config files exist.
jj arrange now scrolls the viewport to keep the selected commit visible
when the commit stack is taller than the terminal. #9033.
The default pager flags now include -K (--quit-on-intr), so pressing
Ctrl+C in less exits cleanly instead of leaving the terminal in a
corrupted state (raw mode, visible escape sequences, broken input).
A side of a conflict whose contents end with a carriage return no longer loses
that byte when the materialized conflict is parsed back, such as when a
conflicted file is snapshotted from the working copy. #9868
In colocated workspaces, jj workspace update-stale now correctly resets the
Git HEAD to the parent of the fresh working-copy commit. #9936
jj run no longer runs against the remaining revisions if a process exits
with a nonzero exit code.
Fixed crash in jj log involving hidden revisions and the log-graph-prioritize revset. #9975
In colocated repos, an external git add after a jj command no longer
produces a tree with duplicate entries (git fsck: duplicateEntries). jj
was leaving a stale cache-tree behind in .git/index. Repositories already
corrupted this way are not repaired by the fix. #9711 #8884
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
jj convergecommand was added to help automatically resolve divergentcommits by combining them appropriately.
Breaking changes
jj config {edit,set,unset} --usernow targets the first loaded userconfiguration file (e.g.
~/.config/jj/config.tomlor the first file inconf.d/) instead of prompting interactively when multiple files exist.Use
--file <PATH>to target a specific config file.jj git importin non-colocated repositories no longer imports commits from adetached Git HEAD branch.
Deprecations
None
New features
The new
jj convergecommand attempts to automatically resolve divergence bycreating a new commit that replaces the divergent commits. It applies
heuristics to try to automatically come up with a good solution, and falls
back to prompting the user if the heuristics are inconclusive. It can also run
in non-interactive mode, which aborts if prompting would be needed.
jj bisectwill now mention when it cannot unambiguously find the first badrevision due to skips in evaluation.
Git HEAD state is now tracked per worktree internally. This prepares
colocated repositories for support of multiple Git worktrees, where each
jj workspace can have its own Git HEAD. Existing repositories are migrated
automatically.
jj config {edit,set,unset}now support a--file <PATH>option totarget a specific configuration file (such as files inside a
conf.d/directory or loaded via
--config-file). This allows precise file targetingand avoids interactive prompts when multiple config files exist.
Fixed bugs
The default
immutable_heads()setnow includes
untracked_remote_tags().jj arrangenow scrolls the viewport to keep the selected commit visiblewhen the commit stack is taller than the terminal.
#9033.
The default pager flags now include
-K(--quit-on-intr), so pressingCtrl+C in
lessexits cleanly instead of leaving the terminal in acorrupted state (raw mode, visible escape sequences, broken input).
A side of a conflict whose contents end with a carriage return no longer loses
that byte when the materialized conflict is parsed back, such as when a
conflicted file is snapshotted from the working copy.
#9868
In colocated workspaces,
jj workspace update-stalenow correctly resets theGit HEAD to the parent of the fresh working-copy commit.
#9936
jj runno longer runs against the remaining revisions if a process exitswith a nonzero exit code.
Fixed crash in
jj loginvolving hidden revisions and thelog-graph-prioritizerevset.#9975
In colocated repos, an external
git addafter ajjcommand no longerproduces a tree with duplicate entries (
git fsck: duplicateEntries).jjwas leaving a stale cache-tree behind in
.git/index. Repositories alreadycorrupted this way are not repaired by the fix.
#9711
#8884
Contributors
Thanks to the people who made this release happen!
This discussion was created from the release v0.45.0.
All reactions