jujutsu 0.45.0
Jujutsu 0.45.0
About jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started.
关于 jj 是一个既简单又强大的 Git 兼容版本控制系统。请参阅安装说明以开始使用。
Release highlights
A new jj converge command was added to help automatically resolve divergent commits by combining them appropriately.
发布亮点
新增了 jj converge 命令,通过适当地合并提交来帮助自动解决分歧提交(divergent commits)。
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 config {edit,set,unset} --user 现在会直接定位到第一个加载的用户配置文件(例如 ~/.config/jj/config.toml 或 conf.d/ 中的第一个文件),而不是在存在多个文件时进行交互式提示。请使用 --file <PATH> 来指定特定的配置文件。
jj git import in non-colocated repositories no longer imports commits from a detached Git HEAD branch.
在非并置(non-colocated)仓库中,jj git import 不再导入来自游离(detached)Git HEAD 分支的提交。
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 converge 命令尝试通过创建一个替换分歧提交的新提交来自动解决分歧。它应用启发式算法来尝试自动得出最佳解决方案,如果启发式算法无法确定,则会回退到提示用户。它也可以在非交互模式下运行,如果需要提示则会中止。
jj bisect will now mention when it cannot unambiguously find the first bad revision due to skips in evaluation.
jj bisect 现在会在由于评估跳过而无法明确找到第一个错误修订版本时进行提示。
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.
Git HEAD 状态现在在内部按工作树(worktree)进行跟踪。这为并置仓库支持多个 Git 工作树做好了准备,每个 jj 工作区都可以拥有自己的 Git HEAD。现有仓库会自动迁移。
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 config {edit,set,unset} 现在支持 --file <PATH> 选项以定位特定的配置文件(例如 conf.d/ 目录中的文件或通过 --config-file 加载的文件)。这允许精确的文件定位,并避免在存在多个配置文件时出现交互式提示。
Fixed bugs
The default immutable_heads() set now includes untracked_remote_tags().
修复的 Bug
默认的 immutable_heads() 集合现在包含 untracked_remote_tags()。
jj arrange now scrolls the viewport to keep the selected commit visible when the commit stack is taller than the terminal. #9033.
当提交堆栈高于终端时,jj arrange 现在会滚动视口以保持选定的提交可见。#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).
默认的分页器标志现在包含 -K (--quit-on-intr),因此在 less 中按 Ctrl+C 可以干净地退出,而不会使终端处于损坏状态(原始模式、可见的转义序列、损坏的输入)。
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
当冲突的一侧内容以回车符结尾时,在解析物化冲突(例如从工作副本快照冲突文件)时,该字节不再丢失。#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 workspace update-stale 现在可以正确地将 Git HEAD 重置为新工作副本提交的父级。#9936
jj run no longer runs against the remaining revisions if a process exits with a nonzero exit code.
如果进程以非零退出代码退出,jj run 不再针对剩余的修订版本运行。
Fixed crash in jj log involving hidden revisions and the log-graph-prioritize revset. #9975
修复了 jj log 中涉及隐藏修订版本和 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
在并置仓库中,在 jj 命令之后执行外部 git add 不再产生带有重复条目的树(git fsck: duplicateEntries)。jj 之前会在 .git/index 中留下陈旧的缓存树。此修复不会修复已经以这种方式损坏的仓库。#9711 #8884