2

私のVisualStudio2005は、どのプロジェクトとソリューションがどのソース管理リポジトリに対応しているかに関する情報を.slnファイルと.csprojファイルに保存しています。代わりに、そのバインディング情報を外部ファイルに保存することは可能ですか?

情報をソリューション/プロジェクトファイルの外部に保存したい理由は、AnknSVNプラグインの実験を容易にするためです。現在、VSS 6にすべてのものがありますが、SVNのリポジトリの実験的なコピーを維持し、次に説明するアイデアを使用して2つを手動で同期したいと思います。

http://www.dotnet6.com/blogs/jeroen/archive/2008/04/05/using-subversion-in-a-vss-only-shop.aspx

残念ながら、バインディングを.slnファイル(たとえば)に保存すると、これにレンチがスローされます。説明のために、VSSリポジトリ全体を並列SVNインスタンスにコピーするとします。ここで、AnknSvnを使用してVisualStudioでSVNからメインソリューションを開きます。このプロセスでは、AnkhSvnは.slnファイルのソース管理バインディング情報をSVNを指すように変更します。次に、新しいプロジェクトP1をソリューションに追加するとします。これにより、Visual Studioは.slnファイルをもう一度変更し、P1の存在に注意します。この時点で、SVNコピーで行った変更をVSSリポジトリに同期したいとします。ソース管理バインディングが.slnファイルに保存されていなければ、それほど悪くはありません。ただし、.slnファイルには2つの異なる変更が含まれているため、プロジェクトを伝播したいのですが、変更をVSSに追加し直しますが、ソース管理バインディングの変更をVSSに伝播して戻す必要があります。これは、すべてのVSSユーザーのビルドが破損するためです。他の手動介入なしに1つの変更を伝播する方法はないと思います。対照的に、Visual Studioがバインディング情報を.slnファイルの外部に保存するだけの場合は、実際にすべての.slnファイルの変更をVSSに伝播する必要があります。これで問題ありません。

4

4 に答える 4

3

VisualSVNはネイティブソース管理エコシステムプラグイン(SCC)を使用しないため、ソリューションやプロジェクトファイルを汚染しません。商用ライセンスですが、非常にリーズナブルです<$50。したがって、厄介なVSSを引き続き使用できるようになります(ただし、理想的には.svnディレクトリを除外します)

于 2008-09-24T22:40:26.227 に答える
2

AnkhSVN 2.0 には 2 つの操作モードがあります。

  • 接続済み (推奨)。これにより、バインド情報が .sln およびオプションでプロジェクト ファイルに格納されます。
  • 切断されました。これはバインディングを保存しません。

[ファイル] -> [Subversion] -> [ソース管理の変更] で、ソリューションと個々のプロジェクトを接続および切断できます。

接続する利点は次のとおりです。

  • ソリューションを開く際の SCC プロバイダー間の自動切り替え (例: VSS、TFS、AnkhSVN 間)
  • SCC サポートを実装するすべてのプロジェクト タイプと互換性があります。
  • (2.1+) プライマリ作業コピー外のプロジェクトの自動処理。(例: c:\inetpub の Web サイト)

注: 以前にソリューションで AnkhSVN 1.X を使用していた場合は、Ankh.load ファイルを手動で削除する必要があります。AnkhSVN 2.0 が Ankh.load ファイルを検出すると、ソリューションに自動的に接続します。

[フォローアップ:]
別の SCC 実装の隣で AnkhSVN を使用する簡単な方法は、追加の .sln ファイルを作成することです。AnkhSVN は、個々のプロジェクトの SCC フィールドの実際の値を使用しません。(プロジェクトで完全な SCC 管理を有効にするには、それらを挿入する必要があります)

于 2008-09-30T23:12:26.323 に答える
0

同僚がバインディングを削除するためにこの NAnt タスクを書きました

http://www.atalasoft.com/cs/blogs/jake/archive/2008/05/21/2custom-nant-task-for-removing-tfs-bindings.aspx

おそらく、カスタム ビルド ステップまたはその他のスクリプトに適応して役立つでしょう。

于 2008-09-24T22:44:26.357 に答える
0

IIRC は、AnkhSVN と VSS の両方で、バージョン管理バインディングを .sln / .csproj ファイルによって厳密に実装します (VS のバージョン管理プラグイン インターフェイスは、この種のストレージを容易にします)。したがって、短い答えはノーです。

ただし、Subversion を外部のバージョン管理ソリューションとして使用することもできます。これは、セキュリティと安定性の点で、コマンドライン (はあなたの友人です) またはTortoiseSVNを使用して VSS よりもはるかに優れています。

于 2008-09-24T22:44:48.930 に答える