Méthode pratique pour appliquer les modifications du contrôle de source à plusieurs branches

StackOverflow https://stackoverflow.com/questions/404948

Question

Un scénario courant lors de l'utilisation du contrôle de source consiste à créer une branche de développement avec des branches de versions versionnées. Nous utilisons CVS, avec HEAD comme branche de développement et une branche nommée par exemple. version 6-2 pour la version actuelle d’un produit.

Le développement de nouvelles fonctionnalités n’entre que dans la branche de développement, mais il faut parfois vérifier les corrections de bogues dans la branche de développement et dans la branche de version actuelle. Cela peut parfois être assez fastidieux, alors je cherche des moyens pratiques pour y parvenir.

Lorsqu'un fichier à valider est synchronisé sur les deux branches, je recherche en particulier un "engagement rapide" dans ces branches " solution.

(Nous utilisons CVS comme système de contrôle de source, donc toutes les réponses spécifiques à CVS sont intéressantes. Cependant, il est également intéressant de voir si d'autres systèmes de contrôle de source peuvent offrir une meilleure solution.  Du côté client, nous utilisons Eclipse, les solutions Eclipse sont donc bonnes. Mais si vous avez une solution non-Eclipse, c’est bien aussi.)

Était-ce utile?

La solution

Appliquez votre correctif à la branche de version la plus ancienne requise. Fusionnez ensuite les modifications dans la branche de la version suivante et ainsi de suite jusqu'à ce que vous fusionniez de la dernière branche à la HEAD.

Disons que la version la plus ancienne de votre produit est la version 1.0 et que vous disposez également des versions 1.1 et 1.5. De nouvelles fonctionnalités pour la prochaine version sont ajoutées à HEAD. Si un bogue est trouvé dans 1.0, vous appliquez le correctif à la branche 1.0. Fusionner de 1.0 à la branche 1.1. Fusionnez de la 1.1 à la branche 1.5, puis de la branche 1.5 à la HEAD.

La fusion d'une branche à l'autre est préférable à l'application manuelle du correctif à chaque branche.

Avec CVS, vous devez garder trace des versions fusionnées afin de ne pas inclure les mêmes révisions lors de votre prochaine fusion.

Si vous utilisez Subversion, la fusion d’une branche à l’autre est plus simple. L'outil de subversion d'Eclipse gardera une trace des révisions que vous avez déjà fusionnées, simplifiant grandement la tâche de faire des fusions répétées entre deux branches.

Passer de CVS à Subversion est facile (ish). Vous ne serez pas le premier à avoir fait un tel geste.

Autres conseils

Comme l’a dit awalshe, il est préférable de fusionner les différentes branches. Pour choisir une fusion, choisissez la méthode décrite dans la Contrôle de version pragmatique utiliser CVS est très bon:

Dans la branche - balise ( PRE_FOO ) avant la modification, apportez les modifications et commit, balise après la modification ( POST_FOO ). Puis, dans le coffre, fusionner en utilisant les balises:

cvs up -j PRE_FOO -j POST_FOO

La fusion entre les branches est beaucoup plus facile et sûre dans SVN. Il est donc très simple de convertir l'historique complet de votre CVS en SVN - voir cvs2svn . Vous devez utiliser SVN 1.5 ou, avec les versions antérieures de SVN, svnmerge .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top