gitはgit initするだけでバージョン管理の全てが手に入るし、git cloneしてもバージョン管理の全てが手に入るし、forkしたリポジトリでバージョンが進むことを妨げるものはconflict以外何もないんだよな。この自由は今やベースラインであってほしい。
そうするにはリビジョン番号の発番をやめて自律的な管理ができないといけないけど、じゃあもうtreeもblobもcommitも全部イミュータブルにしてハッシュ値で参照すればいいじゃんっていうのが偉大な抽象化でなくて何だというのか。
で抽象化には相応の複雑性コストがかかるわけだけど、別にgitコマンドやlibgitを所与のインフラとして受け入れれば困ることはそんなにないはず。ファイルシステムという抽象化がlsやmkdirによって支えられているのと同様に。