GITを使用してコンテンツ管理システム(CMS)プロジェクトを管理しています。CMSは複数のプラグイン(モジュール)を持つことができます。
つまり、基本的に、3種類のリポジトリが必要です。
- コアCMS開発(すべての新しいプロジェクトは、その最後の安定した未構成バージョンのチェックアウトです)
- モジュール/プラグインごとに1つのリポジトリ。(すべての新しいプロジェクトは、実装したいモジュールの最後の安定バージョンをチェックアウトします)
- プロジェクトごとに1つのリポジトリ(各クライアントは、コアCMSおよびモジュールからのパーソナライズを表すリポジトリになります)
タイプ1と2の場合、これは単純な基本リポジトリだと思います。しかし、クライアントプロジェクトになると、私は混乱します。
- 最初にCMSのクローンを作成し、次に/ modules /フォルダーに移動して、必要なすべてのモジュールを再度クローンしますか?これにより、リポジトリ内にリポジトリが作成されます。最初のリポジトリは、各モジュールの.git /フォルダーをログに記録しようとしますか?
- 各クライアントはモジュールをパーソナライズする必要があるため、サブモジュールを使用できません。
- モジュールのコアコンポーネントを変更した場合(パーソナライズではなく、バグ修正のみ)、その単一のファイルを元のモジュールリポジトリにプッシュできますか?
- (全体に広がるモジュールunitTestについては話していません)
したがって、問題は次のとおりです。効率的にするには、リポジトリ/ファイル/フォルダをどのように整理する必要がありますか?