標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Git互換バージョン管理システム Jujutsu で Linux の実行ファイルが勝手に登録されがちになる問題

※ 2024-06-13 追記あり

martinvonz/jj では、明示的な add 操作をしなくても、自動的にファイルがレポジトリ管理されるようになっている。

Windows では .gitignore に *.exe と書いておくことで実行ファイルを登録から自動的で除外することができるが、Linux向けの実行ファイルは拡張子が普通つけられないので、グローバルな .gitignore で自動排除がしづらい問題があった。

いろいろ考えてみたが、ピリオドを含まない英小文字だけのファイル名は、基本的にバイナリな実行ファイルである可能性が高い(Makefile とか LICENSE とかは英大文字を含んでいるから拡張子がなくとも大丈夫のはず…)

ということで、~/.gitignore に次のようなエントリを登録してみた。

[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z]
[a-z][a-z][a-z]
[a-z][a-z]
[a-z]

とりあえず、これで様子見している。

2024-06-13 追記

この ~/.gitignore の設定では、英小文字しか使っていない「サブディレクトリ」がまるまる無視されてしまうことが発覚した。レポジトリに test/class.lsp というファイルを登録しても、jj は認識してくれない。

試行錯誤してみた結果、以下で回避できた。

[a-z]
[a-z][a-z]
[a-z][a-z][a-z]
[a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z][a-z][a-z]
[a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]
![a-z]/
![a-z][a-z]/
![a-z][a-z][a-z]/
![a-z][a-z][a-z][a-z]/
![a-z][a-z][a-z][a-z][a-z]/
![a-z][a-z][a-z][a-z][a-z][a-z]/
![a-z][a-z][a-z][a-z][a-z][a-z][a-z]/
![a-z][a-z][a-z][a-z][a-z][a-z][a-z][a-z]/