2008-09-09 15 views
3

私たちは作業リポジトリを移行していますので、ソースツリーにある参照されていないすべてのファイルをきれいな(空の)リポジトリに移動する前に、プロジェクト内の未使用ファイルの検索

これまでのところ私は手作業ですべての参照されていないファイルを見つけましたが、私がそれらをすべて捕まえたかどうかを知りたいのです。 1つの方法は、プロジェクトファイルをファイルごとに新しいフォルダに手動で移動し、コンパイル時に何がスティックかを確認することです。それは一週間かかるので、私は自動化されたツールが必要です。

人々は何を提案していますか?

説明:
1)C++です。
2)ファイルが混在しています。私は他の人に取って代わられているが、リポジトリ内で腐ったままのファイルを探している - たとえば、file_iter.hはプログラム内の他のファイルからは参照されないが、リポジトリに残っているのは、 1996!今は新しいリポジトリに移動して、使用されなくなったすべてのファイルを安全に捨てることができます。
3)Lintは未使用のインクルードのみを検索します。私は使用していないものではありません。

+0

ビルド環境について詳しく説明できますか。たとえば、UNIXのコマンドライン・タイプのツールを使用でき、ビルドにはMakeなどを使用します。その場合にスクリプトベースの解決策を記述することができます。 –

答えて

2

この投稿にはC++とタグ付けされています。だから私はそれが問題の言語だと思っています。それがリポジトリにある唯一のものなら、各ファイル名のリポジトリ内のすべてのファイルをgrepして、良い出発点を与えるのは難しくありません。リポジトリに他のファイル(メタデータ、サポートファイル、リソースなど)が含まれている場合は、おそらく手動で行う必要があります。

0

lintのような静的ソースコード解析ツールがこの仕事をするかもしれません。あるコードが決して呼び出されないかどうかを伝えます。

0

Source-Navigatorを見ましたか?それはIDEとして使用することができますが、私はソースコードの構造を分析することで非常に優れていることが判明しました。たとえば、ソースコードで特定のメソッドがどこで使用されているかを調べることができます。

スクリプト可能かどうかわかりませんが、それはあなたの出発点になるかもしれません。

1

私はそれのための既存のツールを提供することはできませんが、あなたはこのツールから多くの情報を得ることができると思います。通常、ビルド・ツールには、少なくとも実際に実行されていないコマンドを実行させることができます。 (-nのオプションはmakebjamです)これで、少なくとも使用されたソースファイルを抽出できるはずです。

-MMg++の場合、特定のソースファイルのすべての非システムヘッダファイルを取得できます。出力はmakeルールの形式ですが、フィルタリングによっては問題にはなりません。

これが役立つかどうかわかりません。あなたの状況で私が試してみたいことです。

1

"プロジェクト全体の分析"(すべてのファイルが個別ではなく一緒に分析される)を実行することで、間接的にLintを使用してこれを行うことができます。

参照されていない変数/ enum/functionなどの警告をすべて無視するように設定してください。コードベース内の他の人によって隠されていないデッドウッドがどこにあるのかについて合理的な指標を与える必要があります。

+0

私は現在休暇中ですが、リントマニュアルを手にすることはできませんが、ソースコードフォルダに未使用のファイルがどのように表示されるかを確認できます。私はそれを行う方法を教えてくれたら嬉しいです... –

+0

こんにちはGraham、 このトリックは、ソリューション内のすべてのファイルを一覧表示する.lntファイルを生成し、グローバルラップアップ以外のすべてをオフにすることです。 あなたが帰ってきたときに私に知らせてくれたら(アンナATリバーブレード。co。uk)、私はそれを設定して結果を解釈することをお手伝いします。 –

関連する問題