Un article de Wikipedia.y-project.com.
En gestion de configuration, une branche est une dérivation dans l'histoire de l'évolution des éléments de configuration.
On parle donc de «branche de version».
Une branche de version correspond à un axe d'évolution de versions. Elle est rattachée à une branche source et peut découler sur plusieurs sous-branches.
L'évolution des versions se fait de façon linéaire au sein d'une même branche ; c?est-à-dire que les versions se suivent chronologiquement. L'apport des branches offre la possibilité d'avoir des évolutions de versions en parallèle.
Par exemple, le logiciel « Toto » a subit plusieurs évolutions depuis sa première version. À partir de la version 2.1, ses concepteurs décident de publier une version et de continuer à ajouter des fonctionnalités jusqu'à atteindre la version 3.0, qui changera fondamentalement le logiciel. Peu de temps après que cette dernière version soit sortie, ils sont amenés à devoir corriger des bugs dans la version 2.1 ; il est alors nécessaire de créer une nouvelle branche.
1.0 -- 1.1 -- 1.2 -- 1.3 -- 1.4 -- 2.0 -- 2.1 -- 2.2 -- 2.3 -- 3.0
\
\ -- 2.1.1 -- 2.1.2 -- 2.1.3
[] Modèles de branches
Par défaut, l'évolution d'un produit au travers de l'historique de ses versions est un phénomène linéaire :
- le développeur A apporte ses modifications sur le produit,
- B ajoute ses fonctionnalités,
- C corrige le code de A
- etc.
On parle alors de Mainline.
Cependant, au cours de l'évolution d'un logiciel, il se peut que cette MainLine doive à la fois suivre son cours, mais aussi répondre à une contrainte qui va amener le produit à suivre une évolution paralelle à la MainLine. On a besoin alors de créer une branche.
L'origine de la contrainte peut être
- externe : un des clients veut une modification qui lui est spécifique
- ou interne : on a besoin de pouvoir continuer à développer la Mainline tout en permettant la correction de défauts sur une branche en cours de tests.
Ces deux fonctionnements déterminent ce que l'on appelle en anglais
- le Branch by Product (branche par produit, branche de version)
- ou le Branch by Purpose (branche par objectif)
[] Fusion de branches
Cette activité consiste à combiner des modifications ou des suites de modifications (qu'elles viennent de branches différentes ou non) pour créer une nouvelle version.
On peut décliner plusieurs intérêts à la fusion :
- la synchronisation entre plusieurs développeurs, qui travaillent habituellement séparément, donc sur des branches de version différentes
- l'annulation d'une ancienne modification (par opposition à la toute dernière), à appliquer sur la version actuelle
- l'import d'une modification d'une branche vers une autre
Le Texte ci-dessus est disponible sous GNU Free Documentation License.
La source est wikipedia http://fr.wikipedia.org/wiki/Branche (gestion de configuration)