0

特定のプロジェクトの特定のコード メトリックの履歴をコンパイルするのに役立つツールを探しています。

プロジェクトは mercurial リポジトリ内に保存され、約 100 のリビジョンがあります。私は何かを探しています:

  • 各リビジョンをチェックアウトする
  • メトリックを計算し、リビジョンの識別子とともにどこかに保存します
  • 次のリビジョンでも同じことをします

最初は、SLOC をカウントするだけで十分ですが、テスト数、TestCoverage などを分析することもできます。

そのようなことは通常CIサーバーによって処理されることは知っていますが、私はこのプロジェクトに単独で参加しているため、CIサーバーをセットアップすることを気にしていませんでした(TeamCityを使用したいのですが、実行する利点が本当にわかりませんでしただから最初に)。CI サーバーを今セットアップした場合、それを処理できますか?

4

3 に答える 3

2

ジッターの提案によると、ソース行をカウントするために sloccount を使用して、cygwin 内で実行される小さな bash スクリプトを作成しました。出力は単純にテキストファイルにダンプされました:

 #!/bin/bash
COUNT=0 #startrev
STOPATREV = 98
until [ $COUNT -gt $STOPATREV ]; do
        hg update -C -r $COUNT >> sloc.log # update and log
        echo "" >> sloc.log # echo a newline
        rm -r lib # dont count lib folder
        sloccount /thisIsTheSourcePath | print_sum
        let COUNT=COUNT+1
done 
于 2009-12-26T19:22:16.790 に答える
1

たとえば、シェルスクリプトを書くことができます

  1. 最初のバージョンをチェックアウトする
  2. その上でsloccountを実行します(出力を保存します)
  3. 次のバージョンをチェックしてください
  4. 手順 2 ~ 4 を繰り返します

または、今では水銀をサポートしているように見えるohlohを調べてください。

そうなければ、mercurial をサポートする SCM 統計ツールを知りません。mercurial は比較的新しい (2005 年以来) ため、このような「二次的なユース ケース」がサポートされるまでには時間がかかる場合があります。(ヒント: svn と csv の場合と同様に、hgstat ライブラリを自分で提供することもできます)

于 2009-11-20T18:54:14.847 に答える
0

そのようなことを行うソフトウェアを書くのが私だったら、プロジェクトのメトリクス結果を 1 つのファイルにダンプし、それをリビジョン管理するだろうと思います。次に、「履歴分析」ツールは、リポジトリ全体のすべての古いコピーを引き出して毎回すべてのテストを再実行するのではなく、その 1 つのファイルだけの古いバージョンを引き出す必要があります。

于 2009-11-20T18:29:34.507 に答える