この記事は、emacs 用 reviewboard モードの宣伝である。

https://github.com/ifritJP/emacs-reviewboard-front

reviewboard は、ソースコードレビューを Web 上で行ない記録するためのツール。

今は github の Pull-Request に代表されるように Web 上のソースレビューが普及しているが、 reviewboard の初版が 2007 年であることを考えると、 当時は先進的なツールだったと思う。

そんな reviewboard を emacs で操作するモードを今になって作ったので、 どれ程の人が使うかは不明だが、折角なので宣伝しておく。

機能

このモードでは、次の機能を提供する。

  • 修正ファイル一覧から必要なファイルを選択して review request (以降 rrq と記す)を登録
    • rrq の summary/description/testing_done を編集
    • 修正ファイルの追加、削除可能
  • レビューを受けて更新したファイル郡を、一発でアップロード
  • レビューコメントのリプライ登録
  • rrq の publish/close/discard
  • rrq に登録したファイルをコミット

設定

環境

  • curl, rbt, svn を事前にインストールしておく
    • rbt は、 diff の登録に利用する。
    • curl は、 reviewboard の WebAPI へのアクセスに利用する。
    • 環境によっては、 proxy 等の環境変数設定が必要な場合がある。
  • 上記 github から emacs-reviewboard-front を取得し適当な場所に展開する

emacs-lisp

  • emacs-reviewboard-front のパスに load-path に追加する。
  • 次の設定を行なう。
(require 'rbfront-mode)
(setq rb/front-rb-api-token "TOKEN")
(setq rb/front-rb-url "http://reviewboard.host/path")
(setq rb/front-rbt "rbt")
(setq rb/front-proxy "http://proxy.host:8080/")
(setq rb/front-rb-repository "RESPOSITORY_NAME")
  • rb/front-rb-api-token は、 reviewboard のアカウント管理ページで生成した API Tokens を指定する。
  • rb/front-rb-url は、 reviewboard のサーバの URL を指定する。
  • rb/front-proxy は、 reviewboard のサーバにアクセスする際に使用する proxy を指定する。
  • front-rb-repository は、 reviewboard に diff を登録する際の repository 名を指定する。

新規登録

emacs-reviewboard-front では、現状 svnp.el を使用することを前提としている。

ここでは、svnp.el の細かい使用方法については説明しない。 rrq の新規登録に必要な最低限の操作について説明する。

  • M-x svn-status で修正ファイル一覧を表示し、 commit する要領でファイルを選択する。
  • j キー押下で、rrq 編集バッファが表示される。

編集バッファ

/blog/site/assets/rb-new.png

  • title と description、 test を編集する。
  • 編集後、 C-c C-c 押下により submit 処理で reviewboard に登録する。
    • 新規登録の場合、 mini-buffer で reviewer を選択する。
      • この mini-buffer では TAB キーによる補完が可能。

修正ファイルの追加・削除

  • rrq に登録する修正ファイルを追加したい場合、 C-c C-a を押下する。
    • mini-buffer で、ファイルが存在するディレクトリを指定し、 その後表示されるファイル一覧から上記のようにファイルを選択する。
    • 選択後、 j キー押下で、ファイルが追加される。
  • rrq に登録する修正ファイルを除外する場合、 除外するファイルにカーソルを移動して C-c C-SPC を押下する。
    • 除外を reviewboard に反映するには、 C-c C-u を押下する。

review コメント

  • review コメントの表示はサーバアクセスが多くなるため、 デフォルトでは非表示にしている。
  • 表示する場合、 C-c C-d する。
  • デフォルトで表示にする場合、 rb/front-display-comment-p に nil 以外を設定する。
  • review コメントに対するリプライを登録する場合、 コメントにカーソルを合わせて C-c C-r。

submit モード

submit 時の動作を、次のどちらかに変更できる。

  • submit と同時に publish する
  • submit だけする

C-c C-t でモードを切り替える。

デフォルトは publish する。

デフォルトを submit だけに切り替える場合、 rb/front-submit-and-publish-p に nil を設定する。

rrq リスト表示

M-x rb/front-list で、 自分が登録した rrq 一覧を表示する。

/blog/site/assets/rb-list.png

リスト操作

(g)
リストを更新する
(RET)
カーソル位置の rrq を編集する
(u)
カーソル位置の rrq の diff を、再アップロードする
(p)
カーソル位置の rrq を publish する。
(c)
カーソル位置の rrq を close する。
(d)
カーソル位置の rrq を discard する。
(C)
カーソル位置の rrq に登録したファイルを commit する。

diff の再アップロード

再アップロードを行なうため、ローカルの work ディレクトリを指定する必要がある。 work ディレクトリの指定は mini-buffer で行なう。

注意

  • rrq 編集バッファで C-c C-c を実行すると、 バッファ内容がサーバに登録され、即時 publish する。
  • rrq 編集バッファの C-c C-a による修正ファイル追加は、 新規 rrq の場合を除き即時 publish する。 新規 rrq の場合、submit 時に rrq 情報と一緒に更新ファイル情報が登録される。