.vcxproj.filterファイルをソース管理に追加する必要がありますか?


169

Visual Studio 2010 Beta 2を評価していると、変換されたディレクトリで、vcprojファイルがvcxprojファイルになったことがわかります。各プロジェクトの横には、フォルダー構造の説明(\ Source Files、\ Header Filesなど)が含まれているように見えるvcxproj.filterファイルもあります。

これらのフィルターファイルはユーザーごとに保持する必要があると思いますか、それとも開発グループ全体で共有してSCCにチェックインする必要がありますか?

私の現在の考えはそれらをチェックインすることですが、それを行わない理由があるのか​​、あるいは私が間違いなくそれらをチェックインする必要があるのにはおそらく正当な理由があるのだろうかと思います。

明らかな利点は、他の人のマシンを見ているとフォルダ構造が一致することですが、おそらく論理的に再編成したいですか?

回答:


59

Visual Studioの以前のバージョン(少なくともバージョン6.0および2008)では、その情報を独自のプロジェクトファイル(それぞれ.dspファイルと.vcprojファイル)に保存します。もちろん、これはSCCに追加するのに適しています。

この.filterファイルをSCCに含めない理由は何も考えられません。


同感です。チェックインしました。ありがとう!
jschroedl 2009

111

意図的に.filterをプルしました。.vcxproj MSBuild形式に変換したときの.vcprojからのファイル情報。1つの理由は、あなたが指摘したとおりです。フィルターは純粋に論理的なビューであり、異なるチームメンバーが異なるビューを必要とする場合があるためです。もう1つは、プロジェクトファイルのタイムスタンプを確認し、変更された場合に再ビルドをトリガーするようにビルドがセットアップされることがあります。これは、ビルドするソースファイルや設定が異なるなどの理由で発生する可能性があるためです。実際にビルドがそのようにトリガーされた状態で出荷されたかどうかを思い出してください。ただし、フィルターが変更されたためにビルドに影響を与えないため、再ビルドをトリガーしたくないという考えでした。


3
自動再構築のために、どうかを構築するすべてのファイル(例えばソース)を変更しましたので、今は何も私たちが管理するためのさらに別のファイルを持っている以外変わっていません。
gbjbaanb 2010年

3
つまり、両方のファイルを1つのファイルのように管理します。他の誰かがそれらを別々に扱うこともないと思います。その素敵なアイデアが、現実世界での実践についての思考のビットが(WinSxSにランタイムを置くように)長い道のりを行っているだろう
gbjbaanb

9
別々に扱います。私に関する限り、プロジェクトの状態の一部として保存する必要があるがらくたが少ないほど良いので、これは良い決定だと思います。
rwallace 2013

6
抽象/論理ツリーを使用したくないが、プレーンなファイルシステムを使用したい場合は、これらのフィルターを完全に無効にできますか?
JohanBoulé2014

4
@JohanBoule:私は完全に同意します!IDEでフィルターを破棄するだけです。すでに論理的なツリー構造があり、「ファイルシステム」と呼ばれています。現在、多くの重複があります-各ファイルは、ファイルシステム、ビルドスクリプト(vcxproj)、フィルター(vcxproj.filters)、ソースコントロール、およびおそらく他の場所に追加する必要があります。DRYの原則に違反しています。幸いなことに、フィルターファイルはオプションです。それらを削除して、IDEの[すべてのファイルを表示]ボタンを使用するだけです。それがデフォルトではないことを残念。
Yakov Galka

5

Gitを使用している場合、.filterファイルをマージ用のユニオンとして扱うようにマークし、それをより簡単にすることができることを発見しました。次の行を追加してください:

*.vcxproj.filters merge=union

あなたの.gitattributesファイルに。

詳細については、.gitattributesを使用してマージの競合を回避するをご覧ください。


言及されたリンクは、この.filtersファイルがgitattributesファイルに言及された「ユニオン」を持つべきであると述べていません。
ollydbg23

2
しかし、それは何をするかを伝えますmerge=union-他には何も約束されませんでした。その知識と* .filter-filesがどのように見えるかについての非常に幅広いアイデアがあれば、なぜmerge=unionこれらのファイルが優れたアイデアであるのかが簡単にわかります。
Peter Schneider

1

それはあなたが使用した場合に追加すべきではないCMakeようなファイルを生成する(または類似のビルドツール)*.sln*.vcxproj*.vcxproj.filtersこのファイルは、あなたのプロジェクトフォルダおよびその他のフルパスが含まれている可能性があるため、などをのみ、コンピュータの特定のフォルダ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.