jujutsu v0.42.0 released

Jujutsu v0.42.0 发布

About jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started.

关于 Jujutsu (jj) 是一个既简单又强大的 Git 兼容版本控制系统。请参阅安装说明以开始使用。

Release highlights Switched to the mimalloc memory allocator for better multi-threaded performance.

发布亮点 切换至 mimalloc 内存分配器,以获得更好的多线程性能。

Breaking changes The following deprecated command options have been removed:

  • jj commit --reset-author/--author
  • jj describe --no-edit/--edit/--reset-author/--author
  • jj git push --allow-new
  • jj metaedit --update-committer-timestamp

The following deprecated config options have been removed:

  • git.auto-local-bookmark
  • git.push-new-bookmarks

破坏性变更 以下已弃用的命令选项已被移除:

  • jj commit --reset-author/--author
  • jj describe --no-edit/--edit/--reset-author/--author
  • jj git push --allow-new
  • jj metaedit --update-committer-timestamp

以下已弃用的配置选项已被移除:

  • git.auto-local-bookmark
  • git.push-new-bookmarks

Deprecations jj evolog no longer supports legacy commit predecessors recorded in jj < 0.30.

弃用说明 jj evolog 不再支持在 jj 0.30 版本之前记录的旧版提交前身(commit predecessors)。

New features Shell completions now surface descriptions for custom aliases, revset-aliases, template-aliases, and fileset-aliases. Descriptions are extracted from the .doc field of the alias definition if it is a table with .doc and .definition properties.

新功能 Shell 自动补全现在会显示自定义别名(aliases)、revset 别名、模板别名和文件集别名的描述。如果别名定义是一个包含 .doc.definition 属性的表,描述将从 .doc 字段中提取。

jj show now accepts multiple revisions, showing all of them one after the other, behaving closer to git show.

jj show 现在支持接受多个修订版本,并依次显示它们,其行为更接近 git show

jj git fetch now generates evolution history based on change IDs. If change IDs are preserved by the remote, local descendant revisions will be rebased onto the rewritten parents.

jj git fetch 现在基于变更 ID(change IDs)生成演进历史。如果远程仓库保留了变更 ID,本地的后代修订版本将被变基(rebase)到重写后的父提交上。

Added jj util backend name command that prints the commit backend being used in the current repo.

新增 jj util backend name 命令,用于打印当前仓库正在使用的提交后端。

Added edit-invocation-mode config option for diff editors (e.g. jj diffedit, jj split). When set to “file-by-file”, the editor is launched once per changed file, making it possible to use per-file tools like vimdiff for editing.

为差异编辑器(如 jj diffeditjj split)新增了 edit-invocation-mode 配置选项。当设置为 “file-by-file” 时,编辑器将为每个变更文件启动一次,从而可以使用 vimdiff 等针对单个文件的工具进行编辑。

Fixed bugs jj git remote add now reports an error instead of panicking when the remote name is empty or contains whitespace. #9099

修复的 Bug 当远程仓库名称为空或包含空格时,jj git remote add 现在会报告错误,而不是直接崩溃(panic)。#9099

Color-words diffs are now shown as separate before and after lines when color output is disabled, making piped or redirected diffs readable. #5894

当禁用颜色输出时,Color-words 差异现在显示为独立的“之前”和“之后”行,使得通过管道传输或重定向的差异内容更易于阅读。#5894

jj bookmark forget no longer prints “Forgot N local bookmarks.” when no local bookmarks were actually forgotten (e.g. when only an untracked remote bookmark matched). #9181.

当实际上没有遗忘任何本地书签时(例如仅匹配到未追踪的远程书签),jj bookmark forget 不再打印 “Forgot N local bookmarks.”。#9181

The builtin_log_redacted template now also redacts workspace names.

builtin_log_redacted 模板现在也会对工作区名称进行脱敏处理。