Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

Emacs interface to Ditz issue tracking system

Ditz はとても素晴らしいと思います! - ¬¬日常日記で知った、コンソールベースのBTSであるところのDitzがいい感じだなーと思った。しかしやっぱり、せっかくだからEmacsから使いたいと思ったので、それっぽいのを書いてみた。

まあ色々と微妙なところもあるけど、使っていくうちに改善していければいいな。まだあんまり使ってないのでアレだけど、プロジェクトのソースツリーの中に使い勝手のいいTODOリストをつっこんでおくというのは、普通なようでいて、けっこういいかもしれんね。なにやるんだっけー、って時に、単なるTODOリストや作業ログファイルじゃなくて、コマンド一発でリストされたり、編集できたりするのはいい感じ。あと、ditz htmlコマンドを使えば、ditz Issue Trackerこんな感じでHTMLファイルも書き出せたりするので、これを見えるとこに置いておけばよい。

Ditz自体の使い方については上記の紹介エントリや、DitzのREADMEを見ていただくとして、以下にditz.elのREADMEをコピペしておきます。コンソールから使うのと、そんなに変わらないのけど、せっかくEmacsから使うようにしたので、ちょっと楽になるかも。

基本的には、ditz-todoを使いまくる。ditz-add/ditz-add-releaseでタスクを追加し、作業の進捗につれて、ditz-todoでリストアップしたissueやreleaseを、s(show), c(close), r(release)して消していく感じ。

ともあれ、GitHubで公開しているので、フィードバックいただけるとありがたいです(リポジトリのフォーク→pull requestとか、コミッタに登録しろ!とか)。

README for emacs-ditz
=====================

* Description

emacs-ditz provides ditz.el, Emacs interface to Ditz issue tracking
system. You can get Ditz from http://ditz.rubyforge.org/.

* Usage

(1) Checkout from repository.

  $ git clone git://github.com/kentaro/emacs-ditz.git

(2) Add the checkout directory into your load-path.

  (add-to-list 'load-path "/path/to/emacs-ditz")
  
(3) Load dzit.el.

  (require 'ditz)

(4) Set some variables as you like.

  ;; Path to the ditz command (default: "ditz")
  (setq ditz-program "/path/to/ditz")

  ;; If you don't want to always set issue dir when you run commands,
  ;; ditz.el provides automatic finding functionality. Add the
  ;; settings below:

  ;; Issue directory name (default: "bugs")
  (setq ditz-issue-directory "issues")

  ;; Enable automatic finding functionality.
  (setq ditz-find-issue-directory-automatically-flag t))

(5) Run M-x ditz-init to initialize your ditz issues.

(6) Run M-x ditz-add-release to add a new release.

(7) Run M-x ditz-add to add a new issue

(8) M-x ditz-status, ditz-todo, ditz-log are useful for
  browsing your issues.

(9) To change issues/releases' status:

  [1] Run M-x ditz-todo to list issues up.
  [2] Enter the keys below on underlined strings:

    - "s": ditz-show         (Show issue's detail)
    - "e": ditz-edit         (Edit issue's detail)
    - "a": ditz-assign       (Assign/reassign issue to a release)
    - "c": ditz-close        (Close issue)
    - "r": ditz-release      (Mark release as done)
    - "g": ditz-reload       (Reload status/todo/log buffer)
    - "q": ditz-close-buffer (Close ditz-mode buffer)

(10) M-x ditz-html generates HTML files including all statuses.

(11) For the usage of Ditz itself, see the document below:

  http://ditz.rubyforge.org/README.txt

* AUTHOR

Kentaro Kuribayashi
http://kentarok.org/