J'utilise git pour suivre les changements dans les plugins et les thèmes que j'ai développés pour différents sites. Chaque plugin ou thème a son propre référentiel dans l’installation locale de WordPress que j’utilise pour ce projet. Cela fonctionne bien lorsque je travaille juste sur un plugin ou un thème solitaire.
Mais quand j'ai une version locale d'un site entier qui est une collection de différents plugins, thèmes, noyau WordPress, etc. Dois-je garder ce répertoire entier sous contrôle de version?
Y a-t-il une bonne pratique de toujours avoir une collection de référentiels pour chaque thème/plug-in ou que chaque site client dispose d'un référentiel monolithique incluant tout le code utilisé dans le projet (y compris la dernière copie de WordPress via svn.)
Il n'y a pas de meilleure pratique, chaque modèle étant adapté à différents processus de travail.
Si vous ne gérez qu'un seul site avec un seul ensemble de plugins/thèmes, un seul référentiel est logique. Ou si vous gérez plusieurs sites utilisant le même ensemble de plugins/thèmes.
C'est ma préférence personnelle.
Conservez le noyau de WordPress sous contrôle de version SVN afin qu’il dépiste le référentiel officiel. Puis vérifiez/clonez chaque plugin ou thème selon vos besoins séparément.
Je clone souvent tous mes plugins via Git dans un dossier spécial de ma machine, puis je lie mon lien symboliquement aux dossiers dans /wp-content
. Ce n’est pas la meilleure façon de le faire, mais je peux utiliser une copie locale d’un plug-in dans plusieurs installations de test indépendantes de WordPress.
Utilisez un référentiel pour votre site, puis ajoutez chaque référentiel de thème/plug-in en tant que sous-modules git.
De cette façon, vous avez un référentiel qui représente tout un site, mais vous n'avez pas de duplication de code.
Il en va de même pour SVN, utilisez svn externals à la place des sous-modules git.
Comme EAMann l'a mentionné, il est judicieux d'utiliser des liens symboliques/jonctions sur un dossier central contenant votre dépôt si vous en avez beaucoup d'occasions.
La meilleure pratique de la vie consiste à éviter la duplication de données inutiles.
En commun
Pour chaque projet, en fonction de tout code tiers public, vous pouvez enregistrer uniquement une partie , qui convertit ce projet en solution à partir de la distribution par défaut Vanilla . Dans mon cas, je ne stockerai que mes modifications dans le noyau en amont (si elles existent) et mon code ajouté