- About:jj 是一个 Git 兼容的版本控制系统,简单且强大,可参考安装说明开始使用。
Release highlights:
- 默认启用 0.29.0 版本的实验性支持,可将变更 ID 传输到/从 Git 远程仓库,变更 ID 存储在 Git 提交中(名为
change-id的提交头中),git push等常规命令会传输它,若有问题可设置git.write-change-id-header禁用,注意某些 Git 远程仓库和命令在重写提交时不会保留变更 ID。 jj rebase现在若目的地已有相同变更 ID 的提交且更改相同,则会自动放弃分歧提交。jj split增加了--message、--insert-before、--insert-after和--destination选项。jj evolog可显示新 jj 版本创建的提交的相关操作。
- 默认启用 0.29.0 版本的实验性支持,可将变更 ID 传输到/从 Git 远程仓库,变更 ID 存储在 Git 提交中(名为
Breaking changes:
- 移除了用于获取和推送的旧
libgit2代码路径以及git.subprocess设置。 - 模板中书签/标签/远程名称现在以 revset 符号表示法格式化,
bookmark.remote()的类型更改为Option<_>,bookmark.remote() == "foo"仍可用,但bookmark.remote().<method>()可能需要if(bookmark.remote(),..)来抑制错误。 jj rebase现在若目的地已有相同变更 ID 的提交且更改相同,则会自动放弃分歧提交,要保留分歧提交可使用--keep-divergent标志。- 移除了
jj rebase的已弃用--skip-empty标志,使用--skip-emptied标志代替。 - 移除了已弃用的
jj branch子命令,使用jj bookmark子命令代替。 jj util completion现在需要将 shell 名称作为位置参数,且默认不再生成 Bash 补全,已弃用的不同 shell 的可选参数已被移除。- 外部差异工具现在在包含之前(
left)和之后(right)目录的临时目录中运行,用户可通过设置merge-tools.<tool>.diff-do-chdir = false退出,但可能在未来版本中删除,若有问题请报告。
- 移除了用于获取和推送的旧
Deprecations:
ui.diff.format和ui.diff.tool配置选项已合并为ui.diff-formatter,内置格式可指定为:<format>(如ui.diff-formatter=":git"用于 Git 差异)。.normal_hex()方法将从CommitId模板类型中移除,仅对ChangeId类型有用。
New features:
jj split增加了--message选项,可设置具有选定更改的提交的描述。jj split具有通过--insert-before、--insert-after和--destination命令行标志将具有选定更改的修订放置在修订树中任何位置的能力。- 添加了
git.track-default-bookmark-on-clone设置,以控制在jj git clone时是否跟踪默认远程书签。 - 模板现在可以使用
+、-、*、/和%中缀运算符对整数进行算术运算。 - 演化历史现在存储在操作日志中,
jj evolog可显示新 jj 版本创建的提交的相关操作。
Fixed bugs:
- Packaging changes:由于移除了
libgit2代码路径,打包者应移除对libgit2、libssh2、Zlib、OpenSSL 和pkg-config的依赖,并确保未设置 Cargo 的git2或vendored-openssl功能。 - Contributors:感谢使此版本发布的人员,列出了众多贡献者的 GitHub 账号。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。