home >  Java

StatCVSでCVSの統計情報をhtmlで出力(日本語化も)

CVSの開発履歴やコミット数などの統計情報を簡単に見れないかと調べていると、StatCVSというものが便利そうだった。Javaでできていて、JDKがあればすぐ動かせる。

StatCVS - Stat Your Repository

その他、SVN版とかRSS配信するスクリプトも発見。

  1. Subversionのステータスを見える化「StatSVN」
  2. Subversion/CVSログをRSS/HTMLに「Crank」

動かしてみる

CVSの開発履歴をグラフィカルに表示する StatCVS by cles::blogさんを参考に、Version0.4.0で試してみると、なかなか素敵。

Quick StartManualに詳しいやり方は書いてある。cvs -d /cvsroot checkout modulename

チェックアウト>ログファイル作成>StatCVS実行の順になる。

 cvs -d /cvsroot checkout modulename
 cvs log > logfile.log
 java -jar /path/to/statcvs.jar /path/to/module/logfile.log /path/to/module

しかし、コミットログなどが日本語だと文字化けしてしまう。さらに調べると、StatSVN(StatCVS)の文字化け(charset)をソースを変更して直す by ipa styleさんというのがあり、試してみたがうまくいかない。
logの文字コードがまちがっていたのかも。


StatCVS0.4.0の改良


目標は以下。

  1. 日本語化
  2. 文字コードを指定してlogファイルを読み込む
  3. 文字コードを指定してhtmlファイルを出力する

ダウンロードしてきたファイルをそのままEclipseにImportする。Java1.4でコンパイルされているみたいだけどJava1.6でも問題なかった。


/build.xml修正


AntしてみるとJavadoc生成でエラーが出た。Javadocはいらないのでallで実行したときにJavadocが実行されないようにした。

  <!--<target name="all" depends="zip,javadoc,run" />-->
  <target name="all" depends="zip" />

/src/net/sf/statcvs/statcvs_ja.properties作成

statcvs.propertiesに以下を追記。
 # fujihara add
 LOG_CHARSET=UTF-8
 OUTPUT_CHARSET=UTF-8

statcvs.propertiesをコピーしてstatcvs_ja.propertiesという名前で保存。日本語化してnative2asciiしておく。

/src/net/sf/statcvs/Messages.java修正

48行目あたりをLocaleを使うようにした。
  private static final ResourceBundle RESOURCE_BUNDLE =  
    ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault());

/src/net/sf/statcvs/Main.java修正

163行目あたり。FileReaderをInputStreamReaderに修正。
 final Reader logReader = 
     new InputStreamReader(
             new FileInputStream(
                     ConfigurationOptions.getLogFileName()) , Messages.getString("LOG_CHARSET"));


/src/net/sf/statcvs/pages/Page.java修正


204行目あたり。FileWriterをOutputStreamWriterに修正。

 //FileWriter w = null;
 OutputStreamWriter w = null;
 try {
     //w = new FileWriter(this.config.getRootDirectory() + fileWithExtension);
     w = new OutputStreamWriter(
             new FileOutputStream(
                     this.config.getRootDirectory() + fileWithExtension) ,
                     Messages.getString("OUTPUT_CHARSET"));


/src/net/sf/statcvs/pages/MarkupHTML.java修正


28行目あたり。charsetをpropertiesからの読み込みに修正。

 + "charset=" + Messages.getString("OUTPUT_CHARSET") + "\"/>\n"


実行


jdk14.batにJDKの設定を記述。いるのかいらんのかわからんけど念のため。

 set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_06
 set PATH=C:\Program Files\Java\jdk1.6.0_06\bin;%PATH%

statcvs.batがあるので、それを以下に修正して実行してみる。test-cvsにcvs.logがあるので、cvsを入れなくても実行できた。結局logの解析ツールということ。

  java -jar .\dist\statcvs.jar -output-dir .\stats .\test-cvs\cvs.log .
  pause

statsディレクトリにファイルが出力されるはず。

LGPL

ライセンスがLGPLなので、修正したソースコードを公開しておく。distフォルダにjarファイルがある。

statcvs-0.4.0Fuji.zip

コンパイルが面倒なら、jarファイルを解凍して、statcvs.propertiesの文字コード指定を修正し、再度Jarファイルにすればよい。

 jar cvfm statcvs.jar META-INF\MANIFEST.MF .


追記


logファイルEUCでLinux環境で実行したらグラフの見出しが文字化けてしまった。うーん。

参考

一つ一つのステップを着実に進んでいく、ていねいな解説。適切なサンプルプログラム2... 続き
最新の仕様とブラウザに合わせてバージョンアップ。コンテンツの構造を示す「HTML... 続き
試験範囲を完全網羅。試験を知り尽くした監訳者による丁寧な解説。5.0、6.0それ... 続き
GoFの『デザインパターン』で紹介された23個のパターンを、オブジェクト指向の初... 続き
「JavaScriptは言わばひとかたまりの大理石であり、私はその中からこの言語... 続き

トラックバック(0)

このブログ記事を参照しているブログ一覧: StatCVSでCVSの統計情報をhtmlで出力(日本語化も)

このブログ記事に対するトラックバックURL: http://daipresents.com/mt/bin/mt-tb.cgi/1586

コメントする


画像の中に見える文字を入力してください。

著者:Venkat Subramaniam, Andy Hunt, Shane Warden 税込2,520円
アジャイルの核心となるプラクティスについての、包括的かつ焦点の定まった簡潔な要約。特定のアジャイルな方法論を押し付けるのでなく、いろいろな方法論に共通するプラクティスを結びつけ、首尾一貫した全体像を描き出している。
著者:Yugui 税込 2,310 円
他言語でのプログラミング経験を持つ人を対象に、Rubyの特徴、Rubyならではの方法や慣習について解説。Rubyの基礎的な部分とメタクラスやブロック構文のような独自の概念、それらにまつわる文化を説明し、Ruby特有の考え方を知ってもらうことを目的としている。Ruby1.8及び1.9に対応している。 「BOOK」データベースより
著者:前田剛 税込 2,100 円
RubyonRailsで実施されたWebベースのプロジェクト管理システムRedmaineの解説書。

daipresents!!

҂̑蕨

tWn{ Google Code