アジョブジ星通信

進捗が出た頃に更新されるブログ。

cargo package で .gitignore 対象のファイルを含める方法

A. 不可能

理由

cargo package の動作は、 Cargo.toml のあるディレクトリが git リポジトリ内なら、そのリポジトリでインデックスされているファイル、および untracked(git add も ignore もされていない)なファイルの中から必要なファイルを検索します。これは include や exclude が指定してある場合も同じで、 git から見えているファイルの中から include するため .gitignore に指定してあるファイルを入れることができません。泣ける。

参考
https://github.com/rust-lang/cargo/blob/b6ad6fb47deb49b82b82e65c73590c6713a3d789/src/cargo/sources/path.rs#L125