そのため、現在、約 20 以上のプロジェクトを含む単一のソリューションがあります。これをチェックインする必要があります。ただし、いくつかのプロジェクトは同じ共通ライブラリを共有しています。この問題は、SVN で特定のプロジェクト用のタグを作成する必要があり、そのプロジェクトをプルして変更を加えるときに、その時点でコンパイルされたライブラリもプルする必要がある場合に発生します。したがって、次のようになります。
/tag
/project1_1.0
+ Project1_1.0 src code..
// COMPILES WITH COMMONLIB_1.0.dll
/project2_1.0
+ Project2_1.0.dll
// COMPILES WITH COMMONLIB_1.1.dll
/project3_1.0
+ Project3_1.0.dll
/CommonLib_1.0
+ CommonLib_1.0 src code...
/CommonLib_1.1
+ CommonLib_1.1 src code...
svn:external を使用して、project1_1.0 をプルすると、それでコンパイルされた共通ライブラリがプルされるようにする方法を見ました。しかし、これは、svn:external を使用して手動ですべてのタグを確認し、正しいバージョンの CommonLib を追加する必要があることを意味するのではないでしょうか?
私たちがやろうとしているのは、各プロジェクトに独自のバージョンを持たせることです。次に、QA/Prod に移行するときに、プロジェクト名とバージョン番号の下にそのコードをタグ付けします。そのため、アプリケーションの実行中にイベント ログを確認してエラーを見つけたら、バージョン番号を確認してから SVN に戻り、それぞれのタグ付きコードを取得して変更を加えることができます。ただし、コンパイルに使用された特定のライブラリを知る必要があるため (それがどれほど古くても)、プロジェクト コードをプルすることはできません。
これは良い方法ですか、それともソリューション全体をチェックインするだけでよいのでしょうか? サブプロジェクトに変更を加えたいだけの場合、これは少し極端に思えます。SVN でバージョニングを使用する優れた方法はまだ思いつきません。