Appliquer un correctif dans une branche de fonctionnalité

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

  1. 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.
  2. 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 amgit am est également utile si les correctifs ont été créés par git 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).

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *