DVCS で共通ライブラリ ソースをどのように管理しますか?
現在、私のチームは Perforce を使用してソフトウェア プロジェクトを管理しています。Perforce の「ワークスペース マッピング」機能を使用して、共通ライブラリ ソースを開発アプリケーション ディレクトリに簡単にマップし、ソース管理と開発プロジェクト作業の間の変換を透過的に保つことができます。たとえば、リポジトリは次のようになります。
SCMツリー構造
- 根
- アプリ
- フォーラムサイト
- 管理ツール
- 一般
- event.logger
- json.parser
- デシベル
- ユーザー
- サイト構成
- アプリ
優れた P4 マッピング機能により、開発者は、ワークスペース マップを使用して最も理にかなった形式で、作業中のプロジェクトの完全なソース セットを取得できます。典型的な開発プロジェクト フォルダーは次のようになります。
開発プロジェクト フォルダ
/projects
/FALL-2009
/ForumSite
/deps
/event.logger
/json.parser
/AdminTool
/deps
/event.logger
/json.parser
/Users-db
/SiteConfiguration-db
/FALL-2009-PATCH-01
/json.parser
/SiteConfiguration-db
/FALL-2009-PATCH-02
/AdminTool
/deps
/event.logger
/json.parser
/SiteConfiguration-db
開発者が自分のコンポーネントまたはアプリケーションでソースを編集すると、変更は正しいバージョン ポイントの正しいソース管理ディレクトリにマップされます。これは開発者にとって透過的であり、管理の複雑さと新しいプロジェクトを設定する時間を削減します。
Perforce の潜在的な代替手段として、Git、Bazaar、および Mercurial を調査しています。DVCS の世界で一般的なコンポーネント ソースがどのように処理されているかについて、誰か洞察を提供できますか?