Vue d'ensemble de la ramification des projets de gestion de configurations
La ramification des projets est utile pour :
• l'extraction et la génération à partir de versions précédentes d'un projet ;
• la création de versions personnalisées d'un produit ;
• la réalisation d'un travail de développement de branche ;
• la maintenance après publication ;
• la résolution des erreurs dans les versions précédentes du produit ;
• les essais de nouvelles fonctions à l'extérieur du chemin de développement principal ;
• l'expérimentation au moyen de recherches qui n'ont aucune incidence sur le développement normal.
Vous créez une branche de projet en créant un nouveau chemin de développement.
Il existe des modèles principaux à suivre pour la ramification des projets :
• la ramification en fonction de la version ;
• la ramification en fonction du projet.
Ramification en fonction de la version
Dans un modèle de ramification en fonction de la version, le contenu du projet (les fonctions, les améliorations et les défauts) a tendance à être bien défini et statique. En règle générale, le projet complet passe par les étapes de développement, de test et de version.
Toutes les activités de développement sont effectuées sur le tronc principal du projet. Les candidats à la version sont identifiés en tant que points de contrôle et finalisés sur une branche de projet. Les correctifs de bogue et le travail de développement de stabilisation continuent sur le tronc principal du projet et sont migrés vers la branche de candidat de version à l'aide de l'option Appliquer le lot de modifications.
Ce type de ramification de modèle est adapté aux environnements de développement dans lesquels les versions complètes sont envoyées en production. Lorsque vous utilisez ce modèle, il est recommandé de limiter le nombre de branches afin d'éviter de recourir plus tard aux fusions de masse.
Ramification en fonction du projet
Dans un modèle de ramification basée sur un projet, le contenu du projet (les fonctions, les améliorations et les défauts) a tendance à être dynamique, avec des suppressions et des ajouts constants de sous-projets (constitués de fonctions, d'améliorations et de défauts) jusqu'à la dernière minute. Le projet est envoyé en production par incréments. En règle générale, ce type de développement n'envoie pas la totalité du projet après le lancement initial et tend à avoir des mises à jour en production d'une fréquence hebdomadaire.
Tous les développements sont effectués sur les branches du projet créées à partir du dernier point de contrôle de production. Les modifications apportées sur les branches du projet sont fusionnées dans une branche de l'intégration à l'aide de la commande de resynchronisation du lot de modifications et testées sur cette branche avant la fusion dans le tronc principal. Après l'envoi du code d'intégration récemment introduit dans le tronc principal, toutes les branches de projet actives sont écartées et recréées à partir du dernier point de contrôle du tronc principal (production). Cette action oblige toutes les branches de projet actives à se synchroniser avec la dernière version de production.
Dans un modèle de ramification en fonction d'un projet, il est recommandé de créer uniquement des branches pour des projets de développement simultané ou parallèle. La création de branches au niveau d'une fonction, d'une amélioration, d'un défaut ou d'une tâche est déconseillée.