http://svnbook.red-bean.com/en/1.7/svn.reposadmin.planning.htmlの最初の例に従って、すべてを 1 つのリポジトリに配置することをお勧めします。COMMON は、他のすべてのプロジェクトに沿った 1 つのプロジェクトになります。
次に、各プロジェクトが現在使用している COMMON のバージョンを反映して、COMMON のリリース タグを各プロジェクトにコピーします。
レイアウト例:
/common
/branches
/common_improvements1
/common_improvements2
/tags
/common-1.0.0
/common-1.0.1
/trunk
/projA
/branches
/stable-1.0
/common (=copy of /projA/trunk@oldrev =copy of /common/tags/common-1.0.0)
/stable-2.0
/common (=copy of /projA/trunk@somerev =copy of /common/tags/common-1.0.1)
/projA_ongoing_fix_branch
/tags
/1.0.1
/1.0.2
/1.1.0
/2.0.0
/2.0.1
/trunk
/common (=copy of /common/tags/common-1.0.1)
/projB
(similar structures)
/projC
(similar structures)
利点:
- COMMON とプロジェクト間の簡単なアクセスとトレーサビリティ
- 便利な場合、ユーザーは簡単に対話、テスト、およびお互いの努力をサポートできます
- COMMON リリース タグのコピーは、このプロジェクトで現在どのバージョンの COMMON を使用しているかという質問に答えます。
インポート中のオプションの手順:
サーバー上のファイル構造や別のバージョン管理システムなど、現在のすべてのプロジェクトに共通のレイアウトはありますか? もしそうなら、私はあなたに次のことをお勧めします:
- レイアウト全体を新しいリポジトリのフォルダーにインポートします (例: /root/old_layout)
- プロジェクト ファイルとフォルダーを svn リポジトリ内の新しいレイアウトに移動します。
これには、リビジョン ログが次の質問に答えるという利点があります。以前の構造では、このファイルはどこにあったのか? これは、開発者に新しい構造を教える際や、一時的なリソース (コンサルタントなど) がレイアウトの変更後に戻ってきた場合に非常に役立ちます。