web-dev-qa-db-ja.com

ディストリビューション自体だけでなく、gitを使用してディストリビューション内のプロジェクトをダウンロードする方法

$options['package-handler'] = 'git_drupalorg';を.drushrc.phpファイルに設定しました。ディストリビューション(この場合、Commonsの7.x-3.x-devリリース)に対してdrush makeを実行すると、ディストリビューション自体はgitを使用してチェックアウトされますが、その中の個々のプロジェクト(モジュールとテーマ)はチェックアウトされません。これらのプロジェクトを個別のgitリポジトリとしてチェックアウトするにはどうすればよいですか?サブモジュールが機能することを前提としていますが、それを機能させるために正確に何が必要ですか?

5
Matt V.

これを実行する直接的な方法はありません。

これは、開発環境に適したシーケンスです。 --package-handler=wgetdrush makeに基づいています。サブモジュールはありません。 Contribはsites/allにダウンロードされます。

cd /tmp
drush dl commons --variant=profile-only
drush make commons/drupal-org-core.make distro
mv commons distro/profiles
rm -rf distro/sites/all/
drush make --no-core --no-gitinfofile --working-copy distro/profiles/commons/drupal-org.make  distro/sites/all

sites/allは存在しない宛先を必要とするため、drush makeを使用しました。そのため、distro/profiles/commonsはオプションではありません。別の方法としては、tmpディレクトリで最後のmakeを実行し、後でprofileディレクトリにコピーします。


補足として、drupal.orgプロファイルはダウンロードする3つのパッケージを提供します:プロファイルのみ、コアプロファイルとプロジェクト、プロファイルとプロジェクト。参考として http://drupal.org/node/1867206 を参照してください。

drush dlは、これら3つのtarballの中から選択するオプションを提供します:--variant=<full,projects,profile-only>。 3つのオプションはすべて--package-handler=wgetで使用できますが、git_drupalorgでは、単一のgitプロジェクトに対応するため、有効なオプションはprofile-onlyのみです。

つまり、サブモジュールを使用して(drush dl commons --variant=full --package-handler=git_drupalorg)を提供するためのより複雑なワークフローを実装する余地はあります。

1
jonhattan