私は最近、CとPerlで書かれたさまざまなプログラムとスクリプトを組み合わせて構築された現在のシステムを置き換えるために使用される大規模システムの計画の一環として、Visual StudioでさまざまなC#プロジェクトに取り組み始めました。私が現在取り組んでいるプロジェクトは、破壊に取り組むための臨界量に達しています。VisualStudioプロジェクトのリポジトリに何をコミットすべきか、何をコミットすべきでないのか疑問に思いました。ビルドアーティファクトであり、実際にコミットする必要のないさまざまなファイルが生成されることはわかっています。VisualStudioでSVNを適切に使用するためのアドバイスはないかと思いました。現在、VisualStudio2010ベータ版のSVN1.6サーバーを使用しています。任意のアドバイス、意見を歓迎します。
7 に答える
次のファイルをVisualStudioソース管理に追加できます。
- ソリューションファイル(
*.sln
)。- プロジェクトファイル、たとえば、
*.csproj
ファイル*.vbproj
。- Visual Studioプロジェクトの実行時の動作を制御するために使用される、XMLに基づくアプリケーション構成ファイル。
ソース管理に追加できないファイルには、次のものがあります。
- ソリューションユーザーオプションファイル(
*.suo
)。*.csproj.user
、ファイルなどのプロジェクトユーザーオプション*.vbproj.user
ファイル。- たとえば、Webプロジェクトの仮想ルートの場所を制御するWeb情報
*.csproj.webinfo
ファイル*.vbproj.webinfo
。- たとえば、出力ファイル
*.dll
や*.exe
ファイルを作成します。
VisualStudio2008/2010用のSubversionソース管理プラグインであるAnkhSVNを使用することをお勧めします。
これを使用して、ソリューション、プロジェクト、およびソースのリポジトリへの最初の追加とコミットを実行できます。ビルドアーティファクトは追加されません。ビルドによって生成されたものは追加されず、ソリューションによって参照されるファイルのみが追加されます。ソリューションに含まれていない必要な部分が他にある場合は、後でそれらを追加できます。
次のファイルをバージョン管理に入れます。
- .dsw(VS6ワークスペース)
- .dsp(VS6プロジェクト)
- .sln(VSソリューション)
- 。*proj(さまざまなタイプのVSプロジェクトファイル)
- もちろん、ソースファイルやその他のアーティファクトを作成します
次のファイルをバージョン管理に入れないでください。
- .ncb(ブラウジングまたはintellsenseと関係がある)
- .suo(ウィンドウの配置などのユーザーワークスペース設定-私は思う)
- .user(ブレークポイントなどのユーザープロジェクト設定-私は思う)
また、オブジェクトファイル、実行可能ファイル、自動生成されたファイル(生成される可能性のあるヘッダーなど)を入れないでください。
実行可能ファイルやその他の生成されたファイルに関しては、リリースをアーカイブできるようにしたい場合は例外があるかもしれません。これは良い考えかもしれませんが、ソースコードとは少し異なる場所で、場合によっては別の場所で管理することをお勧めします。これを行う場合は、後でデバッグできるように、.pdbファイルもアーカイブしてください。アーカイブされたシンボルを保存するためにSymbolServerを使用することをお勧めします(シンボルサーバーとそのドキュメントについては、Windows用のデバッグツールを参照してください)。
SVNから除外するVS固有のファイルのリストは次のとおりです。
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
ソリューションレベル:
.sln
ソリューションファイルを追加します.suo
ソリューションのユーザーオプションファイルを無視する
プロジェクトレベル:
.csproj
、.vbproj
(およびc ++プロジェクト?)ファイルを追加します.csproj.user
、.vbproj.user
ファイルを無視しますbin
ディレクトリを無視するobj
ディレクトリを無視する- 実行時に生成されるファイル/ディレクトリ(ログなど)を無視します
VSアドインを使用すると、無視する必要のあるファイルが生成される場合があります(つまり、ReSharperがファイルを生成.resharper
し.resharper.user
ます)。
MyProject.csproj
無視項目は、ファイル名(つまり、)またはワイルドカードパターン(つまり、)によって明示的に無視できます*.csproj.user
。
無視を設定したら、ソースのクリーンコピーをチェックアウトしてから、ビルドに変更が表示されないようにします(つまり、新しいバージョン管理されていないファイルは表示されません)。
バージョン管理すべきではないと思うすべてのファイルを手動で含めます。
私のグローバル無視パターンは次のとおりです。
.dll .pdb .exe .cache .webinfo .snk bin obj debug _Resharper .user resharper
無視リストを使用している場合、SVNでは大文字と小文字が区別されます。したがって、binフォルダーとBinフォルダーを別々に無視することを忘れないでください。
また、質問がありました。ステータスアイコンの更新に時間がかかるのはなぜですか。時々それは非常に混乱します。
Mercurial無視リストについては、VisualStudio2008プロジェクトのMercurial.hgignoreを参照してください。私はSVN無視リストの構文に精通していませんが、このスレッドにはVisualStudioで無視するもののいくつかの良いリストがあります。