De plus en plus de gens se rendent compte que Git est génial. Bien que le code source officiel de WordPress soit toujours sur SVN, vous pouvez contribuer en faisant des patch (correctifs) sans avoir à toucher SVN.
Sans plus tarder, voici comment vous pouvez générer et gérer les patch pour le core de WordPress (cela supppose que vous êtes à l’aise avec la ligne de commande).
Les patchs ont besoin d’être attaché à des tickets. Vous pouvez parcourir les tickets existants ou en créer un nouveau. Le manuel du contributeur contient plus de détails sur le processus de correction de bugs.
WordPress dispose d’un miroir Git officiel, nous allons donc l’utiliser.
git clone git://develop.git.wordpress.org/ wordpress
cd wordpress
Récupérer le numéro du ticket et créer la branche
git checkout master -b some-feature/123
123 est ici le numéro du ticket.
Maintenant faites les modifications de code que vous avez besoin de faire et commitez-les (vous pouvez faire plusieurs commit cela n’a pas d’importance).
... edit some files...
git commit -am "fixed the bug"
... edit some more files
git commit -am "fixed edge case"
Voici la partie la plus cérébrale, vous pouvez générer un svn-compatible patch directement depuis Git.
git diff master... --no-prefix > some-feature.123.diff
Si vous voulez sauter l’argument –no-prefix, vous pouvez modifier votre gitconfig
git config --global diff.noprefix true
Tout ce que vous avez maintenant à faire c’est d’uploader le fichier some-feature.123.diff au ticket.
Si c’est une grosse fonctionnalité et que vous voulez avoir des retours dessus sans avoir à uploader un nouveau patch à chaque changement, vous pouvez publier votre branche sur Github, Bitbucket ou votre propre serveur.
Par exemple, si j’avais crée le dépôt scribu/WordPress sur Github, tout ce que j’aurais à faire c’est de le lié à mon clone local
git remote add scribu git@github.com:scribu/WordPress.git
Après cette étape initiale, je peux publier ma branche en faisant
git push -u scribu some-feature/123
Il est fort probable que vous rencontriez un ticket qui a déjà été patché par quelqu’un d’autre.
La première chose à faire est de télécharger le fichier du patch et de l’appliquer. On commence par ajouter un alias bash
# Apply a Trac patch.
function tp() {
curl "$1?format=raw" | patch -p0
}
On lance source ~/.bash_aliases et maintenant la manière d’utiliser cet alias
git checkout master -b revisions/23497
tp http://core.trac.wordpress.org/attachment/ticket/23497/23497.4.diff
git add -A
git commit -m "apply http://core.trac.wordpress.org/attachment/ticket/23497/23497.4.diff"
Cela devient plus difficile lorsque vous téléchargez une nouvelle version du patch et que vous avez des commits supplémentaires dans votre branche. Je laisse ça comme exercice pour le lecteur. 🙂
Cet article est une traduction de Contributing To WordPress (Using Git) écrit par Scribu.
Les liens suivants vous intéresseront probablement :
PS : Pour en apprendre davantage sur comment bien choisir ses plugins wordpress, vous pouvez lire cet article.