2010-08-31 8 views
38

Je suis impatient de fusionner mes codes que j'ai développés dans une branche de SVN au tronc. J'utilise Eclipse et j'utilise Team-> Commit pour valider mes mises à jour sur le SVN. Mais je n'ai pas fait de fusion avant. S'il vous plait, j'ai besoin de votre aide avec ceci. MerciFusion de branche à tronc dans SVN en utilisant Eclipse

Répondre

76
  1. Tout d'abord, assurez-vous que vous êtes à jour. Mettez à jour votre copie de travail de la branche cible, c'est-à-dire où vous fusionnez. Dans cet exemple, nous travaillons sur le tronc de "core" et nous voulons récupérer les modifications qui ont eu lieu dans la branche maintenance et les fusionner.
  2. Résolvez les conflits éventuels. Il ne devrait pas y avoir de conflit à ce stade entre la copie de travail et le dépôt.
  3. Sélectionnez l'option de fusion SVN sur la copie de travail. Dans Eclipse, cela va être trouvé dans le menu "Team" et appelé "Merge Branch". SVN: Fusion dans Eclipse
  4. Modifiez l'URL De à la branche spécifique que vous souhaitez fusionner dans votre copie de travail. Dans cet exemple, nous recherchons la branche de maintenance p400 (./core/branches/p400).
  5. Modifiez le De révision à la dernière révision qui a été fusionnée dans la branche cible. Essentiellement, vous ne voulez pas continuer à fusionner l'historique de la branche entière, vous voulez simplement inclure ces changements depuis la dernière fois que vous avez fusionné. Il n'y a pas de moyen facile de déterminer le dernier point de fusion pour le moment dans Subversion. Vous devez passer en revue votre journal de message et rechercher le dernier commit qui parle de la fusion. Si vous êtes discipliné sur les messages de validation que vous utilisez pour fusionner cela devrait être facile (voir ci-dessous). Prenez note de ce qu'est cette révision - vous en aurez besoin plus tard lorsque vous validerez vos modifications. SVN: Fusionner avec Eclipse
  6. Modifiez la révision à la dernière version (c'est-à-dire la tête). Prenez note de ce qu'est cette révision - vous en aurez besoin plus tard lorsque vous validerez vos modifications.
  7. Cliquez sur Fusionner et attendez. En fonction de la taille des différences, cela peut être rapide ou Eclipse tomber. Si vous avez un changement tellement énorme que vous ne pouvez pas le faire dans Eclipse, vous devrez peut-être réduire la taille des révisions. Ou vous pouvez même passer certaines révisions et les faire manuellement si elles sont massives. Nous avons eu ce problème de temps en temps lors de la mise à jour de grandes bibliothèques tierces. La grande majorité du temps, tout ira bien.
  8. Vérifiez les modifications et résolvez les conflits. Une fois la fusion terminée, examinez les modifications apportées à votre copie de travail et assurez-vous de résoudre les conflits que vous trouvez.
  9. Une fois que tous les changements ont été résolus dans la copie de travail cible, vérifiez-les avec une seule validation. La raison pour laquelle vous ne faites pas beaucoup de validations est que ce sont des modifications qui auraient dû être documentées dans la branche à partir de laquelle vous avez fusionné. Le message de validation doit être dans un format spécifique qui détaille la fusion et est facile à trouver dans le futur. Nous utilisons le format suivant, mais vous pouvez utiliser tout ce qui fonctionne pour vous - aussi longtemps que vous y tenez.

    Fusion de [source] vers [cible]; [dépôt]. Fusionner rev [début]: [fin]

Profitez!

+3

Contrairement à subversifs (eclispe client standard svn je pense?) Subclipse a beau contrôles de bonnes pratiques avant la fusion;) que vous savez .. –

0

Je voudrais ajouter pour Point 8. Réviser les modifications et résoudre les conflits. Lorsque vous travaillez sur des conflits manuellement - lorsque vous copiez de droite à gauche sur des morceaux de code - Soyez prudent Parfois, un morceau de code est ajouté, parfois il remplace correctement le morceau. Assurez-vous qu'il n'y a pas de fragment de code en double.

En outre, c'est helpful-- What is the proper way to do a Subversion merge in Eclipse?

Questions connexes