2009-03-05 3 views
2

J'espère que cela a un sens et des excuses si cela a été couvert auparavant.SVN embranchement et la fusion dans un environnement de fonctionnalité en évolution rapide avec un chiffre d'affaires élevé

La situation: Nous effectuons des mises à jour régulières dans un environnement de production. Au moins une fois toutes les deux semaines, mais assez souvent, il peut y avoir jusqu'à trois versions par semaine. Nous avons une équipe concentrée de 3xSE, 2xWD, 3xQA et un directeur technique/chef (moi). L'équipe fluctue en fonction des besoins, mais nous constatons généralement que l'assurance qualité augmentera considérablement vers la fin pour faire face à des exigences/actifs retardés ou à une phase de test de régression importante. 6 branches de fonctions standard qui sont généralement ciblées sur les dates de publication et une seule ligne de réseau qui sert également de branche de publication. Il y a des coûts indirects qui fusionnent et qui se ramifient, mais nous sommes devenus très doués pour ce qui est de faire de l'art. Nous maintenons donc les branches en fusionnant régulièrement les troncs dans la branche feature à chaque fois qu'il y a eu une fusion dans le tronc à partir de l'une des branches d'entités. Cela nous a donné la flexibilité de permettre à notre client de modifier leurs exigences, de retirer des versions entières, etc. sans trop affecter les autres éléments d'une version qui sont effectués dans une branche distincte. Le problème: Je voudrais examiner les moyens d'améliorer ce processus et nous avons examiné l'option de faire tout le travail dans un référentiel de troncs, se branchant dans un référentiel de QA et ensuite dans une branche de publication. Nous serions toujours en mesure d'utiliser des branches de fonctionnalité si nécessaire à partir du tronc, bien que cela pourrait être mal vu. Ce que je veux dire, c'est que pour réunir deux éléments principaux du site, le contenu et la fonctionnalité, nous devrons faire en sorte que les choses dépendent du temps. C'est à dire. fournir un mécanisme pour mettre la dépendance temporelle sur le contenu (je ne suis pas sûr que vous pourriez sur la fonctionnalité). Le coût de ce processus sera relativement élevé et nous découvrirons très rapidement si cela n'a pas fonctionné parce que nous ne serions pas en mesure de répondre assez rapidement au client. Gardez à l'esprit que le client peut actuellement examiner chacune de nos branches de fonctionnalité ainsi que le tronc dans leurs environnements UAT séparés.

Est-ce que quelqu'un a des suggestions ou a déjà rencontré une situation similaire?

Merci

Répondre

2

Utilisez-vous SVN 1.5, si vous êtes je prendrais un regard sérieux dans la fonctionnalité « svn fusion --reintegrate ».

1

Selon le scénario que vous avez décrit. Je suggère de déplacer le développement expérimental vers le tronc principal et de créer des branches de publication lorsque vous figez des entités pour une version. A partir de ce moment-là seulement introduire des corrections de bogues dans la branche de publication. Les branches de relâchement peuvent être laissées aussi longtemps que nécessaire. Pas besoin de supprimer la branche après la sortie de la version. (Bien sûr, cela ne fera pas de mal Avec SVN rien n'est jamais effacé définitivement).

Questions connexes