Comment faire git clone avec drush pour télécharger la version HEAD d'un module?

11

Existe-t-il un moyen de cloner ou d'extraire la version HEAD d'un module dans le référentiel git de drupal.org?

Par exemple, si je suis sur Drupal 7 et que la dernière branche de Views est 3, je voudrais faire:

drush git-clone views

pour réaliser quelque chose d'équivalent à:

cd sites/all/modules/
git clone --recursive --branch 7.x-3.x http://git.drupal.org/project/views.git

Idéalement, l'utilisation drush git-clone views-3xdevrait cloner la branche 3.x de manière explicite.

Est-ce possible ou je rêve? Ce serait vraiment utile pour le développement.

Pere
la source

Réponses:

10
drush dl views-7.x-3.x --package-handler=git_drupalorg

Mise à jour:

Certes, s'il y a des validations après la sortie de la version de développement, vous devrez exécuter git pullpour passer à HEAD après avoir vérifié via drush dl. S'il n'y a pas de version de développement packagée et que Drush vérifie une version stable, vous devez exécuter git checkout 7.x-3.xaprès drush dl.

Il n'y a pas de commande Drush pour faire un clone git mot pour mot; une partie de la «valeur ajoutée» de drush dl est qu'il saisit les versions publiées. Si git clone est ce que vous voulez, peut-être qu'un court script bash serait votre meilleure solution. Quelque chose comme ça:

Usage:

$ clonedev views 3

Exemple de script:

#!/bin/bash

MODULE=$1
VERSION=$2

DRUPAL=$(drush status "Drupal Version" --pipe | sed -e 's/\..*//')
if [ -n $DRUPAL ] ; then
  cd $(drush drupal-directory modules)
else
  DRUPAL=7
fi

git clone --recursive --branch $DRUPAL.x-$VERSION.x http://git.drupal.org/project/$MODULE.git

Modifiez à votre convenance.

greg_1_anderson
la source
Je viens de l'essayer et il télécharge la dernière version de développement, pas HEAD. Et s'il n'y a pas de version de développement disponible, il télécharge la dernière version recommandée ou prise en charge.
Pere
D'accord, voir la réponse mise à jour.
greg_1_anderson