Ditz はとても素晴らしいと思います!

つい先日、Rubyで書かれたDitzという分散型のITS(Issue Tracking System)がリリースされたようです。

http://ditz.rubyforge.org/

上のサイトをご覧になれば分かるかと思いますが、基本的にコンソールベースです。最近はtracとかredmineとかwebベースのITSが流行っているので、この時点でやや意表をつかれた感がありますが、驚くべきはその管理方法。ditzがやっていることは単純に手元のbugs.yamlを編集し、後はbugs.yamlをdarcsとかgitとかの分散型のバージョン管理システムを使って皆で共有という丸投げ方式。こうなると、じゃあbugs.yamlの内容に衝突が起きたらどうするの?とすぐに思うわけですが、その場合は普通にbugs.yamlを手作業で編集してね、という清々しい割り切り方をとっています。

ditzの利点は以下のようなものであろうと思われます。

  • とにかく手軽、ウェブサーバのセットアップなんか不要
  • コンソールベースなので軽量
  • bugs.yamlはただのYAMLフォーマットのファイルだから簡単に編集できます
  • 好きなバージョン管理システムでbugs.yamlを管理できます

使い方

まずプロジェクトを作ります。これにより、bugs.yamlがカレントディレクトリに作成されます。

ditz init

次にリリース名を作成します。リリース名は、"0.1"とか"trunk"みたいな感じにつけておいて、issueの割り当て先として使うものです。

ditz add-release 0.1

issue の登録は次のようにします。

ditz add

プロジェクトの状態を見たい時には次のようにします。

ditz status

例えばこんな感じのものが表示されます。

Keita       0/ 0 (100%) bugs,  0/ 1 (  0%) features _
aaaa        0/ 0 (100%) bugs,  0/ 0 (100%) features (no issues)

まだ解決していない issue を一覧したい時には次のようにします。

ditz todo

issueが属するリリース名を変更したい時には次のようにします。

ditz assign issue-id

issueが解決した時には、次のようにして閉じます。

ditz close issue-id

感想

というわけで、ざっとditzの使い方を見てみましたが、とても分かり易くてこれなら誰でも使えるんじゃないかと思いました。私はditzがとても気に入りましたので、今後はこれを使っていこうと思います。

ところで"ditz"って辞書で引いたら俗語で「ばか」って意味だそうです。