uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

undo/redoがソースコードの履歴管理になればいいんじゃね

エディタのundo/redoというのはソースコード履歴管理システムの一種です。Emacsにはundo-tree.elというのがあるのですが、これはEmacsでのundo-redo履歴を可視化してくれます。

f:id:uehaj:20100905100524p:image

これは例えば、gitの以下のような履歴ツリーというかDAGと同種のものです。

f:id:uehaj:20100905104418p:image

われわれはundo/redoを行う際に、というよりソースコードを1文字1句変更する際に、ソースコード履歴を特に意識せずに進めている訳です。もちろん、emacsのundo/redo履歴は、SVNやgitのように複数ファイルをアトミックに管理するわけではありませんけれども。

何がいいたいかというと、将来のバージョン管理システムのインターフェースは、コマンドラインではなくてundo/redoと統合されて、履歴として戻っていけるようなるだろうな/なるといいなということです。

undo/redoでは、スクロールバーで時間をさかのぼったりできるといいですね。

さらに、コミットヒストリーの図をGUI編集できると良いよね。以下のようなとき、

              master
              v
      o---o--
     /      /
  -o---o

のmasterをマウスでドラッグして、

      master
      v
      o---o--
     /      /
  -o---o

はいrebase。

少なくともそうならならないとgitなんて業務適用できないってばさ。