Branches CVS
4 Travailler dans une branche
4.1 Présentation
4.1.1 Utilité
Une branche permet de créer un développement parallèle au développement principal (HEAD). Elle est surtout très utile lorsqu'une partie d'un développement ne doit pas faire partie d'une prochaine livraison (
version bêta), mais doit quand même être référencée sous
CVS.
Un ou plusieurs développeurs peuvent travailler dans la même branche. Il est possible de revenir travailler à tout moment sur le HEAD, ou n'importe quelle branche.
1 : ce shéma décrit la création d'une branche branche 1 à partir du tronc principal (HEAD). La branche a été créée ici au moment où les ressources ont été versionnées (V1).
2 : a branche 1 a évolué...
3 : et les ressources ont été fusionnées sur le HEAD. Les développements ont été versionnés à ce moment là en V2.
4 : une deuxième branche a été créée lors de la
version V2.1.
5 : un bug a été corrigé sur le HEAD, et les modifications ont été répercutées (fusion) dans la branche pour que ces corrections fassent partie du lot lors de la fusion de la branche 2 vers le HEAD
6 : la branche 2 est fusionnée vers le HEAD.
4.1.2 Limites des branches CVS
- Il est plus facile de créer une branche sur une partie de développement qui n'existe pas déjà dans le HEAD. Ainsi, il y aura peu de chances que les bugs corrigés dans le HEAD ne doivent être fusionnés dans la branche.
- Le nombre de branches doit être limité justement pour éviter de devoir maintenir plusieurs branches dans lesquelles les corrections de bugs devront être incorporées.
- Pour ces raisons, une branche est un stratégie de développement non pérenne. Elle doit avoir une durée de vie limitée pour être fusionnée à un moment au HEAD.
Pour un éditeur de logiciel, d'autres solutions (payantes) plus adaptées à son métier existent (Perforce, Subversion,...).
4.2 Création de la branche cvs
Une partie du projet ou l'ensemble du projet peut être sélectionné pour être mis dans une branche.
Pour cela, sélectionnez les ressources puis choisissez «
Equipe / Branche ».
Nommez votre branche et choisissez si vous désirez commencer à travailler dans la branche.
4.3 Modification ou ajout de ressources dans la branche cvs
Après validation sous
CVS, les modifications
seront uniquement liées à la branche. C'est à dire que le «
Tronc Principal » du projet (HEAD) ne sera pas modifié tant que les ressources liées à la branche n'auront pas été répercutées sur le HEAD.
Voici la vue fournie par le plugin
Eclipse Version Tree (
http://versiontree.sourceforge.net/).
4.4 Récupération d'une version ou d'une branche cvs
A tout moment il est possible de récupérer la
révision d'une ou plusieurs ressources, la
version ou la branche d'un projet.
4.4.1 Les menus
Si vous êtes sur le «
Tronc Principal » (HEAD), vous aurez ce menu en sélectionnant votre projet puis «
Remplacer par » :
- Dernière de HEAD (récupération des toutes dernières révisions du Tronc Principal)
- Une autre branche ou version (ouverture un autre menu ; voir plus bas).
Si vous êtes sur une branche du projet :
- Dernière de la branche ... (récupération des toutes dernières révisions de la branche actuelle)
- Une autre branche ou version (ouverture un autre menu ; voir plus bas).
4.4.2 La récupération des branches ou versions CVS
Avoir avoir sélectionné «
Remplacer par », cette boîte de dialogue s'ouvre listant toutes les balises configurées localement.
Si vous n'avez pas encore récupéré les balises de branches et de version, sélectionnez « Configurer les balises ».
En fait, seul le développeur à l'origine de la création de la branche aura accès à ses balises. Les autres développeurs devront les récupérer par la méthode décrite ci-dessous.
1 : sélectionnez une ressources ; la section de droite (2) affiche alors les balises liées au module
CVS
2 : sélectionnez une ou plusieurs balises que vous souhaitez configurer dans votre environnement.
- aqua : correspond à la version en cours de la branche aqua
- Racine_aqua : correspond à la création de la branche aqua
- v_1_00_00 : correspond à une version.
Les
versions maintenant configurées, vous pouvez remplacer votre projet par une
version ou une branche.
4.5 Fusion d'une branche dans le HEAD (ou inversement)
La fusion permet de répercuter des ressources modifiées dans une branche (ou
version) vers une version (ou une branche).
1ère étape : se positionner sur la balise sur laquelle on veut que les modifications soient répercutées (faire un «
Remplacer par »).
2ième étape : sélectionner les ressources de destination de la fusion. Ici, la balise est le «
Tronc principal ».
3ième étape : sélectionner les ressources sources de la fusion. Ici, la balise est la branche aqua.
Ensuite, vous pouvez :
- soit récupérer la totalité de la ressource distante
- soit ne récupérer que des sections de la ressource distante.
Voici la vue qui montre les 2 options :
Il reste ensuite à «
Valider » cette fusion pour qu'elle soit bien répercutée sur la balise de destination. Ici, la balise est le «
Tronc principal ».