Est-il possible d'effectuer automatiquement des retraits à partir de n'importe quel VCS ?

StackOverflow https://stackoverflow.com/questions/14634

Question

Prenons un environnement de développement Web, dans lequel les développeurs extraient un projet sur leurs machines locales, travaillent dessus et enregistrent les modifications apportées au développement.
Ces changements sont testés plus en détail lors du développement et mis en ligne selon un calendrier régulier (par exemple hebdomadaire, mensuel, etc.).
Est-il possible d'avoir un déplacement automatique de la dernière version balisée (et non de la dernière version, car elle pourrait ne pas être stable à 100 %), par exemple à 8 heures du matin le lundi matin, soit en utilisant un script, soit en utilisant une fonctionnalité intégrée du VCS ?

Était-ce utile?

La solution

Certes, mais le produit exact peut dépendre du VCS que vous utilisez.

Ce que vous voudrez peut-être faire, c'est avoir quelques branches différentes et migrer au fur et à mesure de votre progression.Par exemple, Développement -> Stable-Dev -> Bêta -> Production.Vous pouvez ensuite simplement mettre à jour automatiquement vers la dernière version de Stable-Dev et Beta pour vos testeurs, et toujours être en mesure de déployer une nouvelle version de production en un clin d'œil.

Autres conseils

Oui c'est possible.Il s'agit généralement d'une fonctionnalité fournie par outils d'intégration continue.En règle générale, ils obtiendront la dernière source du contrôle de version, construiront le projet, le testeront (en exécutant des tests unitaires) et éventuellement le déploieront sur un serveur (de test).

Si vous n'avez pas besoin de toutes ces étapes, vous pouvez facilement faire la même chose avec des scripts shell ou similaires (c'est-à-direextraction à partir du contrôle de version et copie dans le dossier de production sur le serveur).

Tout ce que vous pouvez faire avec cvs peut être fait avec la ligne de commande, et je suis presque sûr que svn est le même.Déterminez simplement la fonctionnalité souhaitée et collez-la dans un script shell ou un fichier de commande.

Les deux seuls avec lesquels j'ai de l'expérience sont SVN et Mercurial.Pour Mercurial, vous spécifiez la branche à partir de laquelle vous souhaitez qu'elle soit mise à jour (disons par défaut), puis chaque fois que vous fusionnez une branche par défaut, vous pouvez simplement faire exécuter le serveur :

hg update

Ce qui met à jour votre référentiel vers la dernière version de la branche sur laquelle vous l'avez défini.

SVN est le même concept, vous vérifiez uniquement quelle branche vous voulez initialement

svn co http://host/repository/branchname/

Ensuite, vous demandez à votre serveur de mettre à jour cela avec une tâche cron, ala

svn up

En théorie cependant, tout VCS prenant en charge le branchement (tous les bons font :git, mercurial, SVN, etc...), devrait pouvoir faire quelque chose de similaire à ceci.

Je doute que de nombreux VCS offrent cette capacité directement, mais cela devrait être très simple à écrire.Soit un paiement basé sur une date ou une succursale.

En guise de suivi,

Je suis d'avis qu'une application doit faire un travail et bien le faire.Souvent, si vous commencez à combiner des outils en un seul produit, aucun d'entre eux ne brillera, et la plupart d'entre eux seront « bien, en quelque sorte ».

Si je faisais quelque chose comme ça, j'obtiendrais quelque chose comme SVN, ANT et Subversion Ant Library (http://ant.apache.org/antlibs/svn/index.html) - votre millage peut cependant varier.

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