1

カスタムビルドプロジェクト「キックスタート」があります

このキックスタートには、非常に簡単にモジュールを追加できます。

これらのモジュールをビルドするときは、バージョン管理されたキックスタートの 1 つのクリーンなマスター コピーに基づいてすべてのモジュールをビルドします。

プロジェクトを開始するときは、空のレポを作成し、キックスタート レポをリモートとして設定し、リモートからプルします。コアに更新がある場合は、リモートからプルするだけです。

これはうまくいきます。

しかし、私が言及したモジュールはあります。それらはすべて、新しいプロジェクトとしてクリーンなキックスタートでビルドします。

これらすべてのモジュールをバージョン管理したいと考えています。

モジュールのファイルは、実際にはテンプレート内に存在します。

ワークフローは次のようになります

/site 1
  /kickstart
    /module1
      /module1 files
    /module2
      /module2 files
  /site 1 specific file
  /site 1 specific file

/site2
  /kickstart
    /modification of kickstart file for site2 only (e.g. config.php)
    /module2
      /module2 files
    /module3
      /module3 files
  /site 2 specific file
  /site 2 specific file

/site3
  /kickstart
    /modification of kickstart file for site3 only (e.g. config.php)
    /module1
      /module1 files
    /module3
      /module3 files
  /site 3 specific file
  /site 3 specific file

したがって、サイト 1、2、および 3 は独自の git リポジトリです。

それらにはすべて、git リポジトリであるキックスタートが含まれています

モジュールを共有するものもあります。

現在、これらから上流にプッシュすることはありません。サイト 1 で実行中に何かがうまく機能すると判断した場合は、キックスタートのクリーン コピーをチェックアウトし、そこで変更を加えてから、すべての異なるサイトにプル ダウンします。モジュールと同じこと。

しかし、私の基本的な質問は、モジュールをどこに置くかということです。それらはそこにあるキックスタートに依存します。

サブモジュールとサブツリーについても聞いたことがありますが、それらがどのように機能するかはわかりません。

このワークフローを構築する最善の方法は何ですか?

4

1 に答える 1

2

これらの3つのサイトを独自のGitレポジトリに配置すると(3つのブランチを持つ1つのレポジトリを使用するのではなく)、サイト1、2、3の間で(もしあれば)多くのマージを行う必要がないことを意味します。kickstartリポジトリ。

モジュール管理に関しては、サブモジュールまたはサブツリーを簡単に使用できるように、各モジュールを独自のリポジトリに配置する必要があります。

  • サブモジュールは、各モジュールを、その完全な履歴とともに、独自のディレクトリに個別に取得する方法であり、各モジュールリポジトリにプッシュバックすることもできます。
  • サブツリーには、2007年のサブツリーマージ戦略ここで説明)と最近の(1.7.11+)subtreeコマンドの2つの種類があります。サブツリーマージ戦略
    ここも参照)は、モジュールリポジトリの1つをサブディレクトリ()にマージするように適応させます。プッシュバックする必要がないので、それがあなたの解決策かもしれません。modulex
于 2012-09-13T05:55:31.420 に答える