0WD0
1
各位好,最近把 GitHub - bolivier/jj-mode.el: Jujutsu version control mode for Emacs inspired by Magit fork 成了一个新项目 “Majutsu”,核心目标是把 magit 那套顺手的交互搬到 JJ (jujutsu) 上,同时顺带把 JJ
的模板系统做成一个好用的 Elisp DSL。
我目前最大的贡献是写了这个 DSL,这能为输出控制带来很高的自由度。
DSL 的详细文档可以看 docs 里的 majutsu-template-spec
主要亮点:
- Magit 风格的各种 transient 菜单。
- 自带 majutsu-template 支持:可以用 Elisp 写 JJ 模板(默认 log 模板已切换到 DSL)。
- 支持书签管理、rebase、diff/describe、Git pull/push 等常见日常操作。
项目地址:GitHub - 0WD0/majutsu: Majutsu! Magit for jujutsu
如果你在用 jujutsu,欢迎试试,也欢迎顺手推荐 jj 给身边的同事/朋友
它的 DAG 工作流和可撤销操作非常优秀,还有比 git 更优秀的冲突处理
欢迎提交 Issue/PR,一起完善这个 jujutsu 的 Emacs interface。
6 个赞
这么说来在windows上用这个majutsu不会像magit一样卡了吧。
试了下,启动速度确实比magit快。
再试了下,Windows上中文commit会乱码,估计是GBK与UTF8的转换问题吧。
0WD0
3
收到,已复现
之前 fork 之后只是取消了关联关系,忘记加 issue 栏了,现在可以提交 issue 了
1 个赞
0WD0
4
windows编码问题已解决,加一个配置即可完美解决
(setq majutsu-message-input-method 'script)
在这里说说是如何实现的,
reference
在 Windows 平台上,原生版 Emacs 在调用外部程序时,会把所有命令行参数按照系统当前的 ANSI 代码页(GetACP() 返回的值)重新编码,再通过 CreateProcessA 传递给子进程。代码页一旦不是 UTF-8,像中文、表情符号等超出该代码页字符表的内容就会被损坏。Eli Zaretskii(Windows 端维护者)一直强调这一点:“Windows 版 Emacs 无法用非系统代码页编码的参数调用子程序;而 Windows 并不支持把系统代码页设成 UTF-8。”
现在已经可以把windows代码页配置改成 utf-8 了,但是我承认这对一个应该开箱即用的插件来说不是一个好的方案
我尝试了 --stdin 的方案,但是发现同样需要输入文本的 commit 不支持这个选项,依然不是最好的方案
再就看到了 --tool,最后使用两个小脚本创建临时文件来做到的
之后应该会借鉴一下 magit 在这方面的实现
刚刚试了下,发现 squash 的message buffer还在Windows下有中文乱码情况,是不是有可能遗漏了
0WD0
8
因为想要改动很多内容,不打算提PR,独立仓库的话比较自由
MIT license 也允许我这么做,我保留了原作者的 LICENSE 声明
0WD0
9
之后想要切换到 magit 的 with-editor 实现,需要一点时间
1 个赞
Dieken
10
这跟提不提 PR 没关系,Github 很重要的一点其实是「社交」。。。
1 个赞
0WD0
12
我觉得你说的有道理,我之前取消fork关系的确是欠考虑了
我一直以为那个fork关系就是提PR用的
0WD0
13
现在切换至 with-editor 了,不会再有编码问题了