BLOGTIMES
2011/07/17

Software Evolution Storylines でリポジトリを可視化する

  SourceControlManagement  visualize 
このエントリーをはてなブックマークに追加

Software Evolution Storylines - Software Evolution Storylines でリポジトリを可視化する

Software Evolution Storylines という、リポジトリを可視化するツールを見つけたのでちょっと使ってみました。

Michael Ogawa | Software Evolution Storylines

Data comes from the project repository logs. Time flows horizontally from left to right. At each timestep (usually a month) developers are clustered by the files they modify. A histogram at the bottom shows the volume and type of file committed. You can mouse-over individual lines to see them better.

この手のツールはStatCVSStatSVNGourceなどいろいろあるなかでは比較的シンプルなツールです。ビジュアライズ方法についてはxkcd: Movie Narrative Chartsに影響をうけた模様。

動かすのにちょっと苦戦しましたが、とりあえずNucleusCMSのリポジトリを題材に可視化してみました。画像をSVG形式で出力したもの(NucleusCMS Storylines)もありますので、FirefoxやChromeの方はこちらだと高解像度の物が閲覧できます。

以下、動かし方メモ。

作業メモ

研究用のソフトウェアなのでちょっと動かすのにひとクセがあります。
まず下記の2つをダウンロードしておきます。そのほかにJDKも必要です。
 ・Processing
 ・JUNG toolkit

Processingは一種のスクリプトの開発環境で、Software Evolution Storylines はその上で動くスクリプトになっています。プラットフォームごとにバイナリが用意されているので、自分の環境に合ったものをダウンロードします。現状の最新板は1.5.1ですが、うまく動かなかったので、1.2.1を使いました。このツールは processing.exe から起動させることが出来ます。

問題はJUNG toolkitの方。スクリプトから呼び出されるライブラリになるのですが、これを何処に配置すれば動くのか全く分からず困ってしまいました。下記のようなメッセージが出ているのですが、何処においても読み込んでくれません。

Note that release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.

仕方がないのでググってみると、解説してくれているエントリを見つけたのでこれを参考になんとか動かすことができました。

[Processing][仕様]外部ライブラリ(*.jar)の設置方法 : うえちょこ@ぼろぐ

一番簡単な方法としては、該当スケッチのフォルダに、codeフォルダを作成して、その中に外部ライブラリのjarファイルを置きます。

あとは Cluster.pde でちょっとしたエラーが出るので、これはプログラムの冒頭に下記を入れて回避しました。

import java.util.Arrays;

ログファイルについてはあらかじめXML形式にコンバートしておく必要があります。Pythonのスクリプトなので以下のような感じで、プロジェクトをチェックアウトしてログを取得し、コンバートする必要があります。

$ svn co https://nucleuscms.svn.sourceforge.net/svnroot/nucleuscms nucleuscms $ pushd nucleuscms $ svn log -v > ../my_svn.log $ popd $ wget http://codeswarm.googlecode.com/svn/trunk/convert_logs/convert_logs.py $ python convert_logs.py -s my_svn.log -o svn_log.xml

あとは、必要に応じてconfigを書き換えて実行するだけです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4335
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン