gitはスナップショットを保存するだって?

https://b.hatena.ne.jp/entry/s/github.blog/jp/2021-01-06-commits-are-snapshots-not-diffs/
複数の差分からスナップショットを取り出すことは必ず成功するが、複数のスナップショットから差分を取り出すことは失敗する場合がある。
gitでファイル名変更とファイル内容変更を同時に行ったときに、変更履歴が追跡できなくなる事があるのがこのパターンである。



つまり、コミットをスナップショットとして保存する設計には実害がある。

確かにスナップショット方式であればバグによっって特定のコミット内容が失われた時に、以降のコミット内容を失わずに済むメリットはある。
しかしバージョン管理システムは通常そのようなバグが発生しえないほど安定した状態で使われるためこれは利用段階においては実質的なメリットにならない。
その上gitでもレポジトリ容量削減のために、記憶媒体上に保存されるデータは差分なので上記メリットは享受できない場合がある。

初期のプロトタイプ版開発のためにはスナップショット方式は有効だったかもしれないが、リリース版でもその方式を利用し続けたのはgitの設計上の欠陥であり、リーナスは間違えたと言っていい……と思う。