主要观点:作者曾热衷于 Mercurial 版本控制系统,后因 Mozilla 计划将 mozilla-central 迁移至 Git 而感到无奈。偶然发现 Jujutsu 版本控制系统,其以 Git 为后端,兼具 Mercurial 的熟悉概念和现代 DVCS 的特点,如无名头、修订集、不可变提交等,且性能优于 Mercurial,默认设置好、易用性高。
关键信息:
- Mozilla 曾使用 Mercurial,后越来越多 repo 转至 Github 并使用 git-cinnabar,作者角色改变后工作多在 mozilla-central 外。
- Jujutsu 由 Martin Von Zweigbergk 开发,融合 Mercurial 经验,借鉴其他现代 DVCS 概念,用 Rust 编写,性能较好。
- Jujutsu 与 Mercurial 相似点:区分提交和更改、有历史编辑功能、有过时更改概念、带修订集等语言、有良好日志等;不同点:Jujutsu 更改 ID 更优、操作日志方便、UI 设计好、默认设置佳、性能更优。
- 作者认为 Mercurial 因默认设置和向后兼容问题未流行,而 Jujutsu 吸取教训,建议 Mozilla 中 Mercurial 用户尝试 Jujutsu。
重要细节:
- Mercurial 中更改集有提交 ID 和修订 ID,Jujutsu 更改有更改 ID 且在生命周期中不变,只需输入更改 ID 前缀即可操作。
- Jujutsu 历史编辑功能不错,部分功能虽未实现但即将加入,操作日志类似 Git 的 reflog 但基于事务。
- Jujutsu 自动处理过时更改,将整个堆栈隐式变基,推送到 Github pull request 后会自动标记过时更改(但与 Phabricator 配合不佳)。
- Jujutsu 性能优于 Mercurial,用 Rust 编写,虽不优先考虑性能但能在保证易用性的前提下做出权衡,如隐式变基。
- 可通过 git-cinnabar 在 mozilla-central 中使用 Jujutsu,Mozilla 内部 Slack 的 #jj 可解答相关问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。