Trac 0.12b1が出たね

くしくもRedmine 0.9.4と同じ日の5/1にTrac 0.12b1が出ました。正式版は5月末だそうです。

Redmine 0.9.4のリリースに関しては下記エントリなどが参考になると思います。ちなみにチケットの親子関係をつくれるSubtasking(Feature #443: Subtasking - Redmine)は7月ごろ出る予定のバージョン1.0に搭載予定のようです。
Redmine Ver 0.9.4がリリース: プログラマの思索

さて、もともとの予定ではTrac 0.12は2009/12/01リリースとなっていたので5ヶ月遅れているわけです。しかもまだベータ。こうしてみると着々とバージョンアップを進めているようにみえるRedmineと比べると開発が停滞しているように見えてしまいますね。
まあその原因がRedmineRailsベースなのに対してTracは独自だからなのかはわかりません。万が一そうだとしてもあのコンポーネントアーキテクチャは見る価値があると思います。

ともあれ、気になるバージョンアップの内容ですが下記のようになっています。

国際化はおいといて残りの3つを見ていきます。まあデモサイト(Trac 0.12 Demo Project)見てください、以上でもいいんですがいちおうw

まず0.12の目玉ともいえるマルチリポジトリです。これは1つのプロジェクト(Trac Envirionment)で複数のリポジトリ(svnadmin createで作成するもの)を扱えるようにするというものです。
これはRedmineでもチケット(Feature #779: Multiple SCM per project - Redmine)としてあがっていますが実装される気配は今のところありません。マルチプロジェクトを扱えるRedmineユーザにとってもこれは欲しい機能のようです。

まず見た目から言うとこんな感じです。これはリポジトリブラウザの表示です。sampleとsample2という2つのリポジトリがあります。デモサイトのようにリポジトリを分けて表示するやり方はわかりません。

タイムラインではリポジトリごとに表示を絞り込めます。

どうやって設定するかはTracRepositoryAdmin – The Trac Projectを見ていただくとして、簡単に言うとtrac.iniの[repositories]に下記のように書きます。

[repositories]
sample.description = This is the ''sample'' project repository.
sample.dir = /var/lib/svn/sample
sample.type = svn
sample.url = http://localhost/svn/sample
sample2.description = This is the ''sample2'' project repository.
sample2.dir = /var/lib/svn/sample2
sample2.type = svn
sample2.url = http://localhost/svn/sample2

フックスクリプトはcontrib/trac-post-commit-hookではなくcontrib/trac-svn-hookを使うようです。内部ではtrac-adminをnohupで呼び出しています。つまり非同期なのでクライアント側の負荷が減ります。

チケットのコメントは下記のようになります。In [リビジョン番号/リポジトリ名] という表示になります。

ちなみにコメントのところにEditという見慣れぬボタンがあるのに気づいたでしょうか。そうです。コメントも編集できるようになりました。しかも編集すると自動的にプレビューされます。こんな感じです。

これがチケットの改善ですね。ほかにはチケットの編集画面は最初折り畳まれています。編集したい場合は展開してください。

ああそう言い忘れましたが管理画面のプラグインでCommitTicketReferenceMacroとCommitTicketUpdaterを有効にしてください。そうしないとコメントは表示されません。

チケットの改善は説明したのでWikiの改善を見てみます。

Wikiの編集画面で右上にあるEdit side-by-sideをチェックすると横にプレビュー画面がでます。

Review Changesボタンを押すと差分もプレビューできます。

あとテーブルヘッダも書けるようになりました。

ざっとこんな感じです。

印象としては0.10→0.11のときよりもインパクト大きいなと。とくにマルチリポジトリRedmineのようなマルチプロジェクトじゃないのでどうかなと思ったのですがRemineユーザも欲しいみたい。

#redmine この機能がとても欲しい。チケットの親子関係なんてどうでもよいからこっちをなんとかして欲しい。 http://www.redmine.org/issues/779

こくぼ on Twitter: "#redmine この機能がとても欲しい。チケットの親子関係なんてどうでもよいからこっちをなんとかして欲しい。 http://www.redmine.org/issues/779"

個人的には大規模プロジェクトにはTracは向いていないと思っていて、その理由はチケットやタイムラインが追えなくなるから。
Redmineのマルチプロジェクトを使えばチームごとにプロジェクトを作って管理すればいけるかなと。

例えば以下のように機能ごとにEclipseのプロジェクトをおくSVNの構成って一般的だと思うけど、このEclipseのプロジェクトごとにRedmineのプロジェクトをつくればいけるんじゃないのって思ってました。

http://.../svn/sample/
  |
  |--trunk/
          |
          |--sample1
          |
          |--sample2
          |
          |--sample3

でも

@wyukawa チケットの管理内容が小チーム間できちんと独立出来ていないと、複数プロジェクトが使えるという強みは実はあまり意味がないように思います。

hirokinko on Twitter: "@wyukawa チケットの管理内容が小チーム間できちんと独立出来ていないと、複数プロジェクトが使えるという強みは実はあまり意味がないように思います。"

という意見を聞いてなるほどなと思うと同時にマルチリポジトリにも有効性があるなと。

つまり

http://.../svn/sample1/
http://.../svn/sample2/
http://.../svn/sample3/

という構成にしてこれを1つのTracプロジェクトで管理すればいいんじゃねと。タイムラインはリポジトリごとに絞り込めるので追えるし、チケットもコンポーネントごとにわければなんとかなるかなと。

結論として

Tracはまだ終わってない。てか、イケてんじゃん。

ということでw