svn:externalsの使用を非難するいくつかの回答をここで読みました。それらがどのように悪用される可能性があるかはわかります。それにより、Subversionへの依存度が高まりますが、私たちのグループがすぐにSubversionから離れることはありません。
とにかく、これが私のジレンマです。リポジトリの独自のセクションにある複数のプロジェクトを参照するソリューションがあります。これらのプロジェクトの多くは複数のソリューション間で共有されており、プロジェクトの共有を妨げることも望んでいません。また、いくつかの固定バージョンの依存関係がリポジトリにチェックインされています(単体テストフレームワーク、ライブラリなど)。
開発者向けのソリューションを構成するために、外部のみを使用するいくつかの「ワークスペース」を構成したいと思います(Subversionに関する限り、それらは空のディレクトリであるか、単一のソリューションファイルを含む可能性があります)。ほとんどのプロジェクトを自分でチェックアウトするだけではビルドできませんが、すべての依存関係が付属しているため、ワークスペースをチェックアウトするだけでビルドできます。他の誰かが同様のソリューションを実装しましたか?svn:externalsはこれを実行するための良い方法でしょうか?私たちがこの道を進む場合、あなたは私にどのような注意を払っていますか?
基本的に、構造は次のようになります(簡潔にするためにトランク/ブランチ/タグは省略されています)。
/projects
/project1
/project2
/dependencies
/xUnit
/1.5
/1.4
/NHibernate
/2.1.0
/2.0.1
/workspaces
/project1
/project1 (external to ^/projects/project1)
/xUnit (external to ^/dependencies/xUnit/1.5)
/NHibernate (external to ^/dependencies/NHibernate/2.0.1)
/project2
/project2 (external to ^/projects/project2)
/xUnit (external to ^/dependencies/xUnit/1.4)
/NHibernate (external to ^/dependencies/NHibernate/2.1.0)