3

私は、すばらしいHTML5ボイラープレートベースのMagento-Boilerplateテーマ(GitHubリポジトリ)を利用し、自分の子テーマ(プライベートGitリポジトリ)で拡張したMagentoストア(Gitに接続されたSVNリポジトリ)に取り組んでいます。これらはすべて、3つのプロジェクトすべての最上位ディレクトリである単一のwwwフォルダに存在します。これらすべてをそれぞれのリポジトリにきれいに統合したいのですが、私が見つけた単一のディレクトリ内の複数のリポジトリの唯一の解決策はサブモジュールです(これは私がアイデアを気に入っていますが、私が知る限り、各プロジェクトにメインのGitリポジトリのサブフォルダーにあります)、ファイルを所定の位置にシンボリックリンクします(機能するはずですが、少し面倒で、追いつくのが面倒です)。

これを行うためのクリーンな方法はありますか?これが私のフォルダ構造の例です。各ファイル/ディレクトリが存在するリポジトリを示しました-M=Magento、B =ボイラープレート、P =プライベート:

/www
   |-- app [M]
       |-- frontend [M]
           |-- base [M]
           |-- magento-boilerplate [B]
               |-- default [B]
               |-- myprivatetheme [P]
   |-- skin [M]
       |-- frontend [M]
           |-- base [M]
           |-- magento-boilerplate [B]
               |-- default [B]
               |-- myprivatetheme [P]
   |-- .htaccess [M][B][P]
   |-- favicon.ico [M][P]

ご覧のとおり、.htaccessとfavicon.ico全体が複数のリポジトリに混乱していなくても(MagentoとBoilerplateリポジトリでgitignoreまたは--assume-unchangedし、プライベートリポジトリを使用します)トップレベルディレクトリMagentoがコードとテーマをwwwの共通の親を持つ別々のフォルダーに分割する方法のためにwwwです。そのため、アプリ、スキン、およびさまざまなフロントエンドフォルダーは、構造の最上位ディレクトリまで各リポジトリに存在する必要があるため、複数のリポジトリにも存在すると技術的に言うことができます。

これらのリポジトリを別々のフォルダからシンボリックリンクすることが私の唯一の解決策ですか?それは大きな問題ではありませんが、Gitが私のケースに対処するのに十分な柔軟性があるかどうかを知りたいと思います。modmanは、このシンボリックリンクの問題を支援するために特別に作成されたようです。

4

3 に答える 3

3

Gitリポジトリ構造をデプロイメント構造にマップする簡単な方法がないことを確認します(これは基本的に、フォルダー構造が示すものです:Webフォルダーへのデプロイメント)

modman」は自動化の有効な方法のようですが、これらのサブモジュールの1つに変更を加えた場合は、それらをコミットし、それぞれのアップストリームにプッシュして、親のgitリポジトリに移動する必要があることを覚えておく必要があります。 、もう一度コミットしてプッシュします。
これらはすべて、modmanによって考慮されていないようです。

OP Colt McCormackは、 modgitの研究について報告しています。

modgitmodman優れたツールの代替手段です。
それから直接インスピレーションを得たmodgitを使用すると、Gitモジュールをプロジェクトに物理的にデプロイできます(シンボリックリンクなし)
さらに、包含/除外フィルターを定義して、選択したファイルとフォルダーのみをデプロイできます。

于 2012-10-04T06:28:15.127 に答える
2

ツールvcshは、シンボリックリンクを使用せずに、いくつかのリポジトリ(ssh、zsh、vim、emacsなど)の$HOME内のファイルを整理するために作成されました。vcshはこれに偽の裸のgitリポジトリを使用します。また、複数のリポジトリ(同期されたプル、プッシュなど)を簡単に整理するために作成されたmrともうまく連携します。

vcshは$HOMEを対象としていましたが、どのディレクトリでも使用できます。

vcshのreadmeファイルは素晴らしいスタートであり、それがあなたが探しているツールであるかどうかを判断するのに役立つはずです。vcshのメンテナであるRichardHartmannは、FOSDEM 2012でそれについて話しました:情報スライドビデオ

于 2012-10-07T23:51:29.933 に答える
1

multigitもあります。

Multigitを使用すると、共通のディレクトリで複数のgitリポジトリをチェックアウトでき、multigitを邪魔することなく、以前と同じようにgitを使い続けることができるシンプルなツールを提供します。

これは、個別に開発されたさまざまなコンポーネントで構成されているが、プロジェクトのディレクトリ構造のさまざまな部分にファイルをデプロイする必要があるプロジェクトに役立ちます。

これは、サブプロジェクトが独自のサブディレクトリにファイルをデプロイすることのみを許可するgitサブモジュールまたはgitサブツリーを使用して行うことはできません。Multigitを使用すると、サブプロジェクトは、各リポジトリがレイヤーであるユニオンファイルシステムと同様に、プロジェクトの任意のディレクトリにファイルをデプロイできます。

変更管理とモジュール管理のこの組み合わせが役立つ可能性があるいくつかの例:

  1. 別のリポジトリでWebアプリに対して行われたカスタマイズを管理します。
  2. ホームディレクトリをソース管理下に置きます。
  3. Linuxディストリビューションのパッケージおよび/または構成マネージャー。
于 2017-10-31T10:29:59.843 に答える