Ian Lewis
Ian Lewis is a web developer living in Tokyo Japan. His current interests are in Django, python, alternative databases and rapid web application development. About Me...
  • mercurialで、インメモリで、勝手チェンジセットをコミットする方法

    mercurial はpythonで書かれて、わかりやすいAPIを用意しているので、触りたいと思って、インメモリでコミットをしようとするとどうすればいいかというのを調べてみた。

    mercurialは、リポジトリオブジェクト(localrepository)があって、そのしたに、チェンジコンテキスト(changectx)がって、その下に、ファイルコンテキスト(filectx)があると言う仕組みになる。触るのが意外と簡単です。

    普段のmercurialはディスクにあるファイルの処理をするんですけども、インメモリの処理をするために、memctxと、memfilectx のインメモリチェンジコンテキストとファイルコンテキストが用意してあります。

    勝手コミットをするとこうなります。

    それで、hg update たたくと、新しいファイルができました。

    $ hg update
    1 files updated, 0 files merged, 0 files removed, 0 files unresolved

    ファイルの更新は同じく新しいファイルの内容を渡せば、勝手にdiffしてくれます。

    Send feedback   このエントリーを含むはてなブックマーク はてなブックマーク - mercurialで、インメモリで、勝手チェンジセットをコミットする方法