もう scoop にも反映されているようで、scoop update jj
で更新できた。
( scoop の bucket は、GitHub Actions で更新されるので、リリースされたら数時間程度で更新される )
まず、jj のレポジトリのパス・オーナーが変わっている。従来は開発者の martinvonz/jj
だったが、jj-vcs という organization が作られ、jj-vcs/jj
というパスに変わった(昨年12月18日ごろからかな)。失礼ながら、martinvonz という綴りがちょっと難しいので、いつもテキスト書くときに typo しないかヒヤヒヤしていたので、たすかった。
そして、今回、特筆すべき変更が:
- On Windows, workspace paths (printed by
jj root
) no longer use UNC-style\\?\
paths unless necessary.
\\?\
形式のパスは必要にならない限り使わないという変更らしい。これは vim ユーザにとって喜ばしい。
というのも、vim の Windows 版は与えられたパスの中に ? や * が入っているとワイルドカードだと判断して展開を試みるのだが、失敗するとその引数を無視するという仕様にいるせいだ。このため \\?\
形式でのパスは受け取れなかった。--literarl
オプションを付ければ回避は出来るが、やはり、知らない人にとっては落とし穴だった。
今回の修正で、エディターまわりの設定の苦労がなくなって、よかったよかった。
(でも、これ自体は jj の問題ではなく、本当は vim for Windows が悪い。引数のワイルドカード展開が一件もマッチしなかったら、その引数を無視するのではなく、ありのまま利用するのが正解だ)
jj command no longer fails due to new working-copy files larger than the snapshot.max-new-file-size config option. It will print a warning and large files will be left untracked.
これは地味にありがたい。jj って、最新のワーキングコピーを最新のコミット扱いすることにより、明示的に git stash
みたいな操作をしなくても、jj edit
だけで作業コミット位置を変えられるようになっていた。
だが、それだとバイナリファイルまでコミットに含まれて大災害になってしまう。それゆえ、それを防ぐためサイズ制限が設けられており、デフォルトで 1MB 以上のファイルがあると、即エラー終了するようになっていた。だから、そうならないようバイナリファイルを無視するよう .gitignore を設定する必要があった。
今回の変更では、サイズが大きいファイルがあると警告されるだけでコミット対象外になったみたいで、対処がしやすくなったかもしれない
自分の使い方で関係しそうなところだけピックアップした。今回の変更で、自分の設定ファイルもだいぶとシンプルになった。
コメントアウトされてる部分は、かつて必要だった設定。古いバージョンだと、その部分がないと使い物にならなかった時期があった。
[user] name = "******_*****" email = "*******@*****.***" [ui] pager = "cure.exe" paginate = "auto" # editor = 'C:\Users\hymkor\scoop\apps\vim\current\gvim.exe --literal' editor = 'C:\Users\hymkor\scoop\apps\vim\current\gvim.exe' [git] abandon-unreachable-commits = false # diff-editor = "scm-diff-editor" # merge-editor = "scm-diff-editor" # [merge-tools.scm-diff-editor] # program = "scm-diff-editor.exe" # edit-args = ["--dir-diff", "$left", "$right"]
正直「もう変えなくていいよ」と思っていたけれども、こうして困る仕様が改善されると、やはりありがたい。現在はまだまだ Breaking Chages が多いけど、はやく安定板にならないかなぁ…