Cette page décrit un flux de travail pour télécharger et appliquer des correctifs à un espace de travail local, basé sur des » branches de sujet » locales.
Note : Vous pouvez également utiliser l’outil drupalorg-cli pour créer une branche de sujet et appliquer le correctif.
Préparation du dépôt local
- Suivez les étapes sur le Clonage d’un dépôt git Drupal pour faire une copie locale du dépôt ou mettez à jour votre copie locale existante à la dernière version.
- Créer une « branche de sujet » locale pour le problème sur lequel vous travaillez.
git checkout -b - # e.g. 123456-some-bug
Obtenir et appliquer un fichier patch
Télécharger le fichier patch à partir de l’issue, et appliquer les modifications de code dans le patch à votre répertoire de travail (les commandes suivantes supposent que vous êtes dans une fenêtre de terminal dans le répertoire racine du projet). Il existe plusieurs alternatives :
De plus, il existe de nombreux arguments de ligne de commande pour la commande git apply
. L’un d’eux, utile, est -v
, qui donne une sortie plus verbeuse :git apply -v patchname.patch
Voir la documentation git apply pour plus d’informations.
Si le patch ne s’applique pas, et que vous obtenez peut-être un message » Skipped patch …. », essayez la commande patch
(voir « Notes de bas de page » ci-dessous pour en savoir plus) ou reroll le patch :
patch -p1 < .patch
Retourner le patch, en ajoutant le paramètre -R
:
patch -R -p1 < .patch
Commissionner le patch
Si vous prévoyez de travailler à l’amélioration du patch, l’étape suivante consiste à commettre le patch original dans votre branche locale de dépôt :
git add FILESAFFECTEDgit commit -m "Patch COMMENTNUMBER by OTHERPERSON”
Quand vous avez terminé : Nettoyage du code
Après avoir terminé de tester le patch, vous voudrez remettre votre dépôt dans un état « propre » :
- Utiliser cette commande pour rétablir le patch :
git apply -R path/file.patch
- Utiliser cette commande pour supprimer la branche de fonctionnalité que vous avez créée :
git branch -D
Compositeur
Si vous maintenez le code d’un site Drupal avec Composer, et qu’un des projets doit avoir un patch :
* Pour appliquer des patchs à l’aide de Composer, vous devez installer le projet composer-patches :
composer require cweagans/composer-patches:~1.0 --update-with-dependencies
Notes de bas de page
- Vous pouvez également appliquer des patchs avec
git am
git am
est également utile si les correctifs ont été créés pargit format-patch
. - La commande
patch
est utile pour les correctifs qui ne s’appliquent pas, car elle appliquera la plus grande partie du correctif, puis vous pourrez peut-être regarder le fichier.rej
qu’elle crée pour les « morceaux » rejetés du correctif, et les corriger manuellement. Si c’est trop compliqué, essayez de reroller le patch. - Puisque les fichiers de patch eux-mêmes ne doivent jamais être ajoutés au projet, vous pouvez indiquer à Git de les ignorer en ajoutant la ligne
*.patch
au fichier.git/info/exclude
du projet, ou à un fichier global ~/.gitignore. Alternativement, vous pouvez les télécharger à un autre emplacement. - Si vous avez des erreurs lorsque vous essayez d’appliquer un patch, vérifiez les éléments suivants :
- Le patch peut avoir le mauvais encodage de fin de ligne. Notre standard est d’utiliser l’encodage de fin de ligne de style Unix (voir Directives pour les correctifs).
- Le correctif peut ne pas correspondre à la dernière version de développement. Voir Rerolling patches pour savoir comment fusionner les changements ultérieurs.
- Si le test automatique a également signalé le patch comme ne s’appliquant pas au moment de sa création, le développeur qui a créé le patch peut avoir fait une erreur (comme ne pas utiliser Git ou ne pas utiliser la dernière version de développement).
.