web-dev-qa-db-fra.com

Comment ajouter un contrôle de version à mon flux de travail?

Je développe beaucoup de thèmes. On me donne un fichier PSD, code le code HTML/CSS, claque le code dans Wordpress et apporte des corrections au fur et à mesure qu’ils obtiennent le contrôle de la qualité. Une fois en direct, les clients peuvent éditer leurs articles de blog comme d'habitude ou télécharger des photos à l'aide d'un plugin personnalisé.

Parfois, je dois apporter des modifications au thème ou au contenu de la page/du message, ce qui signifie que je les mets en ligne ou que je dois télécharger et configurer le site dans un environnement de développement pour approbation par le client. Je n'ai pas de sauvegarde, je n'ai pas de contrôle de version et je réalise que cela doit changer.

Git et Mercurial ont été suggérés, et j'aimerais tirer parti de ces outils, mais je ne comprends pas comment les intégrer dans un flux de travail.

Ai-je besoin de toutes les modifications apportées à un site sur un serveur de développement, puis de les envoyer en direct une fois approuvés? Qu'en est-il des articles de blog? Cela semble excessif d'écrire des articles sur dev et Push, mais comment puis-je synchroniser les bases de données si elles sont éditées sur le site actif? J'ai parcouru l'internet. Quelques conseils seraient appréciés.

11
cfree

Tout d'abord, vous devez reconnaître qu'il existe deux flux de travail ici: le vôtre et votre client.

Votre flux de travail

  • Recevez PSD
  • Code HTML/CSS
  • Modèle de code WordPress
  • Déployer le thème sur le site WordPress en direct

Leur flux de travail

  • Définissez les modifications requises et envoyez-vous un e-mail
  • Écrire des messages
  • Télécharger des photos

Le problème

La mise en œuvre du contrôle de version ici n’a absolument rien à voir avec le flux de travail de vos clients. Il s’agit de garder une trace du code que vous utilisez pour le thème WordPress. Tous vos fichiers de thème, vos plugins personnalisés, etc. doivent se trouver dans un système de contrôle de version (Git, Mercurial, Subversion ou ce que vous choisissez d'utiliser).

Votre flux de travail devient alors:

  • Écrire le code
  • Valider les modifications dans le système de contrôle de version
  • Poussez les modifications sur le site de production
  • Récupérer les commentaires du client
  • Écrire le code
  • Valider les modifications
  • Écrire le code
  • Valider les modifications
  • Poussez les modifications sur le site de production

N'oubliez pas qu'il s'agit de conserver un historique de contrôle de version pour votre code . Le code est quelque chose que vos clients ne devraient pas changer - et vous devriez jamais changer le code sur un site de production en cours de production.

Toutefois, les modifications apportées au contenu (publications, photos, etc.) ne sont pas couvertes par votre système de contrôle de version. En d'autres termes, vous ne modifiez pas le développement avant de pousser la base de données en production. C'est une mauvaise pratique de développement. Si vous avez besoin que les bases de données dev et prod soient synchronisées, vous devez extraire régulièrement une sauvegarde de la zone de production et restaurer votre version locale à partir de cette sauvegarde.

Changements de code flux du développement à la production.
Modifications de la base de données flux de la production au développement.

8
EAMann

Vous pouvez utiliser un logiciel qui synchronise les bases de données. Mais il y a aussi la possibilité de versionner les données elles-mêmes avec quelque chose comme http://chronicdb.com

1
Gary

Je viens d'écrire une réponse approfondie à ceci sur une autre question. Personnellement j'utilise git et c'est fantastique. Pour commencer, je vous recommande de consulter http://gitref.org/ et http://help.github.com/mac-set-up-git/ Si vous êtes du type livre, j'ai lu celui-ci et il vaut vraiment le prix du livre électronique à 22 $. Faites-le, vous ne regretterez pas cette décision.

1
Matthew Boynes