git も hg も jj も、一度変更を public にしてしまうと修正できないのが問題だと思う。バグやタイポとかあったらチェンジを重ねるのではなくて元のチェンジ自体を修正したい。でも勝手にチェンジをいじるとすでに修正前のチェンジをプルしたクライアントが困るから、以前の状態も裏に保存しつつ修正する必要がある。これはチェンジログ全体のスナップショットに ID をつけてバージョン管理することで解決できると思われる。修正前のチェンジをプルしたクライアントでは履歴が分岐するので、マージやリベースができるようにする必要がある。これはチェンジログ自体の変更履歴をチェンジログログとしてグラフ構造で管理することで実現できるはずである。そしてこのチェンジログログはチェンジログログログで管理する。さらにこのチェンジログログログはチェンジログログログログで管理する。もちろんこのチェンジログログログログはチェンジログログログログログで管理する。すごいアイデアではないか。