Question

J'introduis Subversion dans notre boutique en ligne.Je souhaite que les fichiers archivés soient téléchargés sur le serveur via FTP (et au fur et à mesure qu'ils s'habituent à Subversion, via SFTP).Les fichiers sont envoyés vers une page de version candidate à des fins de test.Un script peut être appelé pour déplacer les fichiers en production.

Ma question est la suivante :Comment transférer les fichiers vers le serveur via Subversion ?Existe-t-il un script que je peux ajouter qui effectuera le transfert lorsque les fichiers seront archivés ?

Était-ce utile?

La solution

Si vous avez un accès shell à votre serveur et que SVN est installé dessus (ou la possibilité d'installer SVN), alors votre meilleur pari est peut-être simplement de contourner complètement FTP.

La façon dont nous déployons nos applications est (simplifiée)

  • Les développeurs écrivent le code et l'archivent dans le coffre
  • Périodiquement, lorsque le tronc est stable, nous en prenons un instantané sous forme de balise
  • Sur le serveur, svn extrait le tag

Si des modifications doivent être apportées au serveur (ou directement sur le serveur live lui-même), il est simple d'utiliser Subversion pour synchroniser le code.

Autres conseils

Vous souhaitez créer un script qui utilise le hook post-commit dans SubVersion.Vous pouvez soit exporter le script depuis votre référentiel, puis FTP vers le serveur, soit simplement extraire votre référentiel vers un répertoire de travail sur votre serveur et appeler "svn update" sur le répertoire de travail du serveur dans votre script hook post-commit. .

Il y a plus d'informations dans la FAQ Subversion

Je pense que vous devriez probablement utiliser svn export plutôt que svn checkout pour les déploiements, afin que ces répertoires .svn ne brouillent pas vos tâches de sauvegarde de production.svn export est une extraction "propre".

Je créerais également un script qui gère tout pour vous.En fonction de la structure de votre code, vous pouvez souvent versionner vos répertoires et simplement mettre à jour un lien symbolique vers la dernière version, ce qui facilite les restaurations.

Vous pourriez même utiliser quelque chose comme Capistrano pour automatiser les déploiements.J'appuie cependant la recommandation pour CruiseControl.

Je pense que ce que vous recherchez, c'est quelque chose comme l'intégration avec un script de construction automatique.j'ai utilisé Régulateur de vitesse faire une chose similaire avec une application ASP.Net.Je ne connais pas vos besoins exacts, mais je parierais que vous pourriez lui faire faire ce que vous voulez.

Les scripts de post-commit sont utiles pour cela.Essentiellement, à chaque validation, un script est appelé après l'événement, que vous pouvez utiliser pour effectuer une exportation SVN n'importe où.

Un intéressant article montre comment cela pourrait être fait, et ce montre comment les scripts hook peuvent être utilisés avec Subversion

Vous pouvez probablement utiliser les "hooks" SVN pour ce faire.Fondamentalement, vous pouvez configurer votre serveur pour exécuter des scripts avant ou après chaque enregistrement.Voici le lien direct vers la section concernée du livre en ligne.

J'appuie l'idée d'Orion.Si vous disposez d'un accès shell au serveur, il est en fait extrêmement simple d'utiliser Subversion lui-même comme outil de déploiement.Assurez-vous simplement d'avoir configuré certaines règles de serveur Web afin de ne pas exposer accidentellement les répertoires .svn.

svn2web transférera les fichiers FTP ou SCP d'un référentiel Subversion vers un serveur Web à chaque validation.Voir le SourceForge projet pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top