質問

最近、標準コーディング規約の研究の一環として、チェックスタイルを検討しています。新しいプロジェクトに完全に適しているように見えますが、新しいコードまたは編集されたコードのみをチェックする方法を提供していないため、既存のプロジェクトへの採用には大きな障壁があるようです。たぶん私は間違っていますか?

コーディング標準がなかったコードベースがある場合は、コードベース全体を一度に標準とインライン化するのに多大な労力がかかる可能性があります。コードが自然に進化するにつれて、時間をかけて徐々にそれを実行できるようにすることは、より合理的なアプローチのように思えます。しかし、checkstyleでは可能性はありません。

これを可能にするには、ソース管理システムと連携する必要があると思います。 Checkstyleでそれは可能ですか、またはこの機能を提供できる別のツールがありますか?

役に立ちましたか?

解決

私が知る限り、Checkstyleはその履歴や改訂を考慮せずにソースを分析することを目的としています。

そのような機能を追加するということは、デルタを表すファイルの正確なサブセットをフィードするスクリプトチェックスタイル分析を意味します。

しかし、 duplicateのように、特定の種類のチェックが失敗するか、分析に失敗する可能性があります。コードチェック

したがって、この種のインクリメンタル分析では、ソースのセットを制限するだけでなく、適用するルールのセットも制限する必要があります。これらのルールの一部はすべてのソースでのみ意味があります。


  

では、なぜ各ファイルで完全なチェックを実行し、ソース管理システムで管理されている変更に基づいて結果をフィルター処理できないのですか?そのようなものはありますか?

特に、 eclipse-cs のようなプラグインでは、私の知る限りではありません。ファイルである場合、特定のリビジョン以降ファイルが変更されていないことをソース管理が言及している場合でも、すべての警告が表示されます。

これを行うことができるのは外部スクリプトのみです:
原則は単純です(ただし、実行時に少し遅くなる可能性があります):

  • 各ファイルについて、diffを実行して変更が行われたかどうかを確認します
  • はいの場合、
    • svn blame 最後の変更を含むリビジョン番号で行に注釈を付けます。
    • 次に、checkstyleを使用してファイルを分析します。
  • スクリプトは、現在変更中の行(または特定の改訂後に変更されたすべての行)の警告をフィルタリングできます。

他のヒント

Checkstyleプラグインを開発しました SCM-Manager 、git、subversion、mercurialリポジトリを管理するためのツール。有効にすると、コミットされたソースコードをCheckstyleルールと照合できます。チェックでエラーが見つかった場合、コミットは中止されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top