2012-02-12 14 views
1

私は、プロジェクトと、潜在的に既存のプロジェクトをSVNバージョンコントロールに設定したいと思っています。私はsvnサーバーのためにuberSVNを使用しています。私はVisual Studio用のAnkhSVNをインストールしました。Visual StudioとSVNの適切なセットアップ

現在、チームはVisual Source Safeを使用していますが、問題の1つは、誰かがDLLへの参照を追加し、期待どおりにプロジェクトファイルを変更するときです異なるチームメンバー(XPボックス、7、あなたはアイデアを得る)。私が欲しかったのは、チェックイン/アウト時にプロジェクトファイルを無視して、他の人のリファレンスを壊さないようにすることでした。

SVNがプラグイン内でこれらのファイルを無視する方法はありますか?この副作用の1つは、プロジェクトファイルを変更するときに、プロジェクトに新しいファイルが追加されたかどうかわからないことです。皆さんに "ちょっと、このファイルをプロジェクトに手動で追加する必要がある"と言う以外に、よりクリーンな方法がありますか?

答えて

1

開発作業には仮想パスの使用を開始する必要があります。そうすれば、各チームメンバーは、どのような物理的な場所にでも作業関連ファイルを保存できますが、仮想パス(ツールで見られるものは常に同じです)。

たとえば、私のチームはすべてQ:\で作業します。仮想パス\右物理パスに

subst q: c:\work\project_name 

を使用して、私は切り替える必要があるときは:。私は特定のプロジェクトで作業したい場合は、私はQをマップPROJECT_NAMEの一部は、プロジェクトに依存した物理パスC:\Work\<project_name>の下にあります、私は同様のコマンドを実行します。この方法では、異なるコンピュータ上の異なるパスについて心配する必要はありません。これはチーム全体で非常にうまく機能し、 e。あなたが確認する必要があるのは、プロジェクト関連のファイルを扱う際には、誰もが常に仮想パス(Q :)を使用し、物理パスは使用しないことです。私のチームにとっては、それに慣れてから約1週間かかりました。それ以降、それ以上の問題はありませんでした。

プロジェクトファイルはプロジェクトの重要な部分です。ソース管理ツールで無視すると、最終的には問題が発生します。私はあなたがそれをしないことをお勧めします(あなたができる場合でも)。

編集: あなたがマシンごとに異なる物理的なフォルダにDLL-Sをお持ちの場合は、最良の選択は、既知の場所にそれらのDLL-S(およびその依存関係)をコピーすることです。コンパイラーがそれらを見つける限り、そこから実行することはできません。

この既知の場所は、仮想パスまたは共通の物理パス内にある可能性があります(複数のプロジェクトで同じDLLが必要な場合)。 Dependency Walkerを使用して、ネイティブDLL-sに必要な依存関係を特定し、.NET DLL-012にはReflectorを指定できます。

DLL-sのサイズ/数が大きすぎてコピーを作成できない場合は、変更をコミットするときにバージョン管理された特定のファイルを無視するようにAnkhSVNに指示することができます。ファイルを右クリックし、Subversion> Move to Change List> ignore-on-commitを選択します。この後、ファイルは未選択のコミットダイアログに表示されますが、手動で選択した場合でもコミットできます。

+0

これは、私たちのウィンドウボックスの人がProgram Files(x86)を指していることと、特定のDLLのProgram Filesを指しているXP人のために、うまくいきません。 – Justin

+0

@ジャスティン:私は自分の答えを更新しました.DLLを既知の場所にコピーするか、変更をコミットするときに特定のファイルをチェックしないようにAnkhSVNに指示することができます。 – xxbbcc

4

DLLをリンクする前にVSソリューションフォルダ内のフォルダにコピーすると、プロジェクトのリンクは絶対的ではなくなります。したがって、あなたはDLLと更新されたVSプロジェクトをあなたの設定管理にチェックインでき、誰もがそれを共有できるはずです。

+2

これもやってます...うまくいきます。開発者が使用するフォルダに完全に依存します。 –

関連する問題