2009-11-21 7 views
0

Je travaille avec une équipe qui développe une grande application CakePHP. Voici comment cela fonctionne:Flux de travail SVN/Développement multi-site

Notre société crée des conceptions de pages HTML/CSS/JS et les transmet à notre serveur de conception. La société d'externalisation en Inde "télécharge" ces modèles de page et écrit le code PHP/AJAX pour eux. Ensuite, ils transmettent le code complété avec les conceptions de page à un serveur de test qu'ils hébergent.

Nous testons le code, envoyons l'approbation, puis l'Inde valide le code complété à notre serveur SVN de production, qui met automatiquement à jour notre site de production via FTP.

Si nous devons apporter des modifications à la conception ou au code, notre société (ou l'Inde) testera ces modifications localement, puis validera le serveur de production.

entre notre entreprise et de l'Inde, nous avons trois serveurs FTP/SVN, en plus de copies de travail locales de chaque stockées sur les ordinateurs des membres de l'équipe:

  • Conception SVN/serveur FTP
  • Test SVN/FTP serveur
  • production SVN/serveur FTP

Il n'y a rien que nous pouvons faire pour améliorer le workflow? C'est un peu compliqué de synchroniser différentes parties de chaque serveur/référentiel entre elles.

Répondre

1

Pourquoi avez-vous besoin de trois serveurs SVN différents? Pourquoi ne pas simplement utiliser des branches ou des tags sur un seul serveur? Vous pouvez toujours avoir des scripts qui vérifient les mises à jour d'un tag particulier et les téléchargent sur le serveur Web.

0

Nous testons le code, envoyons l'approbation, puis l'Inde valide le code complété à notre serveur SVN de production, qui met automatiquement à jour notre site de production via FTP.

À tout le moins vous devez extraira le code de production sur le serveur en utilisant SVN au lieu d'utiliser FTP, les modifications futures du code de production sont une simple mise à jour de la copie de travail sur le serveur de production (svn up).

0

Il ne devrait y avoir qu'un seul dépôt, aussi simple que cela - c'est la première étape, mais c'est juste une clé.

Je pense que vous pouvez alors exécuter plusieurs branches parallèles dans le but que les changements s'infiltrent vers le tronc - le tronc étant la version de production déployée (ou au moins déployable).

Mais la première chose doit être que vous ne voulez qu'un référentiel.

+0

Cela semble bien. Donc, ces branches auraient-elles essentiellement des copies complètes les unes des autres (c'est-à-dire de la production et des tests), plutôt que seulement les différences de code? Je ne suis toujours pas sûr du meilleur moyen automatisé pour gérer les mises à jour de l'environnement de test en production et vice versa pour le déploiement rapide de corrections de bugs sensibles au temps. – Josh

+0

Je continue de relire la question - c'est un ensemble complexe de problèmes! J'aurais besoin de passer beaucoup plus de temps là-dessus pour comprendre! – Murph