現在、動作中のMagentoサイトを保持しているgitリポジトリがあります。リポジトリには、すべてのコアMagentoファイルと、いくつかのカスタムモジュールおよびコミュニティモジュールが含まれています。私がやりたいのは、いくつかのカスタムモジュールを取得して、それらを独自のリポジトリに移動することです。
残念ながら、Magentosのディレクトリ構造に精通している方ならご存知でしょうが、Magentoのモジュールは単一のディレクトリに完全に含まれているわけではなく、ファイルはなどの複数のディレクトリに分散していapp/code/local/{namespace}/{module}/
ますapp/design/frontend/base/{namespace}_{module}/
。現在のディレクトリ構造と同じディレクトリ構造で、1つのモジュールのすべてのファイルを保持するリポジトリ。この時点で、Magentoサイトディレクトリに抽出するだけで配布可能なアーカイブを作成できるようになります(ただし、分離を維持するために、自分のプロジェクトでmodmanを使用する可能性があります)。
私は2つの簡単なアプローチを考えることができます:
- リポジトリのクローンを作成し、問題のモジュールに関連しないすべてのファイルを削除して、元のリモートを新しい空のリポジトリに変更します。
- 空のフォルダに新しいリポジトリを初期化し、ファイルをコピーして正しいディレクトリ階層に貼り付けます。それらをコミットします。
これらのアプローチの両方の欠点は、ファイルのすべてのコミット履歴が失われることです。これは残念なことです。私はこれをどのように保持できるかについて少し調査しました。サブツリー分割を行うことは有望に思えましたが、ファイルがすべて同じディレクトリにあるわけではないという事実で、私の能力を超えていることがわかりました。誰かがこの種のことをした経験がありますか?