Cargo.lock をバージョン管理するや否や
cargo new --bin
したパッケージに対して、たまたまデフォルで生成される .gitignore
を用いずに https://gitignore.io/ で生成してものを用いていたのですが、 Cargo.lock
ファイルの扱いが異なるように思われ、あれ?と思って見直してみました。
すると、 gitignore.io で作成した ignore ファイルに、次のようなことが書かれていました。
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html Cargo.lock
bin
ならバージョン管理し、 lib
ならバージョン管理しないのが正しいようです。 cargo new
した場合はそれぞれそのような .gitignore
が生成されていました。
次のリンクでは 1.3.7.0 以降、 publish 時もそれぞれそういう動作になる、ということを言っているのでしょうかね。