Trac 近況

とりあえずTrac 自体の保守とあるプロジェクトの1モジュールで試用中。
trac のバージョンはおとなしくtrac-ja の0.11 を使っています。


プランナーからは1枚1枚チケットを登録するのが面倒という意見もあったので
xls ファイルにチケットの要素を記入して送信することで一括でチケット登録できる
プラグインを作ってみました。
で、反応をうかがったところまだ色々と要望はある模様。


ただ、ひとつ思ったのがTrac 使ってうれしいのはどちらかってーと
仕事を割り当てる側より割り当てられる側なのだなという事。
自分のところには今どれだけの仕事が割り当てられていて、
今はどの仕事をやってるかなどが把握しやすくなり、それ以上に
公開しやすくなるわけですよね。
なんか上手く言えませんけど、仕事の割り当てのバランスがとりやすく
なるんじゃないかという期待が持てるのです。


という事を踏まえて、プログラマに向けてTrac の利用を売り込んでいくことで
浸透させていくのがいいのかなと考え、その方向で進めていこうとしてます。




あと、今はもうひとつプラグインを作っていて、これはSVN のコミットコメントから
チケットをクローズするというTrac に元々ある機能を拡張するものです。
ウチの会社ではSVN サーバーが既に別の担当者によって保守されており、Trac とは
違うマシン上に存在しています。これだとSVNTrac の連携が出来ないのですよね。
そこで、SVN サーバ側からTrac サーバに向けて、コミットコメントを送信することで
チケットの更新を実現することを考えました。


SVN サーバ側ではフックスクリプトのpost-commit で該当するリポジトリ・リビジョンの
コミットのコメントを拾ってきて解析し、Trac サーバに送りつけます。
データの送信はHTTP のリクエストとして行います。


で、この処理でいくつか問題点がありました。


1.ユーザーの判別・認証をどうするか。
trac 側ではユーザ名を日本語で「苗字 名前」という形式で管理しております。
svn 側はまっとうにアルファベットです。
こういうところがLDAP の使いどころのようにも思うのですが、手っ取り早く解決するために
まずユーザの認証については、「SVN サーバで既に認証しているのだからそのSVN サーバからの
リクエストであればOK」とすることにしました。ユーザの判別については、SVN のアカウントを
そのまま使用する、という事にしました。チケットに表記される履歴がアルファベットになりますが、
そう大きな問題にはならないだろうと思います。


2.リポジトリに対応するtrac のプロジェクトをどうやって判別するか。

ウチの会社のSVNリポジトリには、SVN 導入初期に始まった複数のプロジェクトが一緒になって存在しています。
1プロジェクト=1リポジトリではないのですね。
となると、フックスクリプトからどのTrac プロジェクトに向けてメッセージを送ればいいのかが
何かしら判別する手段が必要になります(1プロジェクト=1リポジトリならフックスクリプトに直接
記入しとけばよい)。SVN のデータを利用することも考えましたがそもそもリポジトリ上のパスと
Trac 上のパスが異なる場合もあるのです。というわけで登録先Trac プロジェクトも
SVN のコミットコメントに記述してもらうことにしました。

不具合を修正 >sandbox fix #20

こんな具合に>プロジェクト名という形で記述します。
正直なところこのコミットコメントにコマンドを記入するやり方は極度のめんどくさがりの人には
利用してもらえないのではないかと思ってますが、チケットの更新用コマンドのほかに
もうひとつくらい追加されるだけなのでギリギリ我慢できる範囲かなと自分では感じてます。


てな感じで、社内だけで使うものだからということで手を抜けそうなところは抜きながら
徐々に進めております。