2010-08-02 6 views
2

Nous utilisons actuellement la structure SVN sans Trunk/Branches/Tags. Jusqu'à présent, nous étions bons avec cela, mais maintenant, nous avons atteint un niveau où nous avons besoin d'un système capable de gérer 3 niveaux différents de versions pour 3 serveurs différents.Besoin d'aide avec SVN: Trunk/Branches/Tags structure

Actuellement, c'est ce que nous avons fait:

Tous les fichiers dans un référentiel unique, une fois le travail effectué, les données sont commis à notre serveur de développement, après avoir testé, il est déplacé vers la mise en scène serveur et après une autre série de tests, il est déplacé sur le serveur live. Mais dans le processus ci-dessus, il y a beaucoup moins de place pour travailler sur la nouvelle fonctionnalité et résoudre les problèmes mineurs simultanément. Donc, pour résoudre ce problème, j'ai pensé que nous pouvions utiliser la structure Trunk/Branches/Tags où la dernière version de développement peut être stockée dans Trunk et déployée sur notre serveur de développement. Les balises peuvent avoir les versions (par exemple, 1.0.1, 1.0.2 etc.) pour le serveur de transfert et les succursales auront les dernières versions (par exemple 1.0, 1.1, etc.) pour le serveur Live.

Maintenant, le problème est, actuellement tout le développement est fait sur le serveur local et je ne suis pas sûr comment je vais faire fonctionner cette structure sur un seul serveur où tous les développeurs travailleront dans un seul dossier racine.

Ou devrions-nous créer 3 dossiers racines distincts (Développement, Mise en scène & Live)?

Toutes sortes de suggestions sont les bienvenues.

Répondre

1

Notre processus contient trois dossiers sur le serveur de déploiement (bien que nous divisions parfois ces trois dossiers en trois serveurs différents):/dev,/test, et/(pour prod).

Dans le référentiel, nous travaillons sur de nouvelles fonctionnalités dans le tronc. Les modifications apportées au tronc sont automatiquement transférées dans le dossier/dev afin que nous puissions voir en temps réel à quoi ressemble le site.

À une date d'échéance prédéfinie, nous dérivons la jonction et lui donnons un nom de test, puis exportons la branche de test vers/test. Nous continuons à développer de nouvelles fonctionnalités dans le tronc alors que nous corrigeons les bogues dans la branche de test, en exportant chacun dans leurs dossiers respectifs sur le serveur et en continuant à tester le dossier/test. Une fois que nous sommes satisfaits du test, nous l'étiquetons avec un numéro de version publique (comme 1.2). Ensuite, nous déployons cette balise dans/(le dossier de production). Ensuite, nous fusionnons les changements de la branche de test dans le tronc afin que nos corrections de bogues soient incorporées. Ensuite, nous commençons le cycle suivant.

+0

Merci beaucoup pour la réponse, donc je suppose, vous devez maintenir 2 dossiers distincts sur le serveur local où peu de programmeurs travailleront sur la version du tronc et peu fonctionneront sur la version de la branche .. et pendant le téléchargement des données sur le serveur live , vous fusionnez les deux et déployez sur le serveur en direct. S'il vous plait corrigez moi si je me trompe. – TTR

0

La structure de votre référentiel doit être indépendante de vos déploiements. c'est-à-dire qu'il ne devrait pas y avoir de référence à la mise en scène, à la diffusion en direct ou à tout ce qui a trait à l'emplacement du code une fois déployé.

Et la façon dont vous avez décrit votre système de numéro de version, ce sont les deux balises. Jetez un oeil à la branching and merging chapter of the SVN documentation pour une explication.

+0

Merci pour la réponse, en fait je suis allé à travers le livre SVN, mais avait quelques doutes sur la façon dont plusieurs programmeurs travaillent sur le même projet, mais sur des versions différentes .. Je pense que Bob Baddeley a répondu à la question. – TTR

Questions connexes