2010-03-10 6 views
1

Dans une situation où il y a trois branches, A, B et C, où A est fusionné à la fois B et C sur une base régulière. De temps en temps B est fusionné avec C. Avec Subversion, B doit apparemment être enlevé et recréé après chaque fusion à C. Cela soulève des gémissements de la part des collègues, mais est-ce que n'importe quelle alternative ferait mieux? Il me semble que Mercurial ne le ferait pas. Peut-être Git?Fusion de plusieurs branches, coller avec Subversion ou passer à Mercurial ou Git?

Est-ce que quelqu'un d'autre rencontre ce problème?

+1

Les branches A, B et C du même arbre, comme le suggère votre texte, ou des sous-arbres l'un de l'autre, comme le suggère votre titre? En d'autres termes, s'agit-il de versions différentes du même contenu, ou de versions de contenus distincts mais interdépendants? – Novelocrat

+0

@Novelocrat: Je voulais dire des branches. – casualcoder

Répondre

6

Vous devriez pouvoir faire cela avec Subversion sans aucun problème. Il est probablement plus facile d'apprendre Subversion en détail que de configurer votre projet avec un nouveau système de contrôle de version. Voici un bon guide:

http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html

Je vous recommande d'essayer et de fusionner vos branches aussi souvent que possible, ce qui réduira la complexité et les problèmes qui se posent si vous attendez trop longtemps avant de fusionner. L'intégration continue (CI) est la clé pour éviter les problèmes et faciliter les fusions.

Bonne chance!

+0

@Ricardo: si vous lisez la section sur la fusion de branches comme celle-ci, vous verrez où mon commentaire sur la suppression de la branche intervient. Globalement, mon impression est que Subversion n'est pas à la hauteur de la tâche, mais passer à Mercurial (Git n'est pas une option) peut être difficile. – casualcoder

0

Git et Mercurial sont tous deux beaucoup plus avancés avec la fusion que ce que subversion peut fournir. Si vous voulez vraiment rendre la fusion simple avec le développement simultané, pensez à utiliser un Git ou Mercurial.

Une fois que j'ai fait l'interrupteur, il n'y avait pas de retour possible. Mon projet actuel a de nombreux flux de développement simultanés, tous simplement gérés grâce à Git.

Questions connexes