私はsvn:externalsの使用を非難するいくつかの答えをここで読んだ。彼らがどのように悪用されるのか分かり、Subversionにもっと依存させるようにしていますが、私たちのグループがすぐにそれから離れていくのは本当にありません。svn externals ...はい、いいえ?
とにかく、ここに私のジレンマがあります。私たちは、リポジトリの独自のセクションにある複数のプロジェクトを参照するソリューションを用意しています。これらのプロジェクトの多くは複数のソリューション間で共有されており、プロジェクトの共有を妨げたくはありません。また、いくつかの固定バージョンの依存関係をリポジトリにチェックインしています(単体テストフレームワーク、ライブラリなど)。
私は開発者のためにソリューションを設定するために、外見だけを使用するいくつかの 'ワークスペース'を設定したいと考えています(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)
そのブログ記事のリンクが移動したことに注意してください。それは今ここにあります:http://cobaltedge.com/svn-externals-are-evil-use-piston-or-braid – chrisrbailey