SVN merge

Merge d'une branche sur l'autre

En fait, il n'y a pas vraiement de merge d'une branche sur l'autre avec SVN. On peut utiliser la commande "svn merge", mais il faut bien comprendre ce qu'elle fait.

Prenez l'exemple ci-dessous :

  • On travaille sur la branche 2.7 d'un produit (https://svn.xxx.com/myProduct/2.7)
  • la branche 2.7 a été créé par copie de la branche 2.6 lors de la révision 5234
  • La version en production est la 2.6
  • Un bug est repéré sur la version 2.6 et corrigé par un développeur sur la branche 2.6
  • L'idée est de réintégrer cette modification sur la branche 2.7, ainsi que toutes les modifications de la branche 2.6 depuis la création de la branche 2.7

Si vous avez compris toutes ces hypothèses les commandes sont notées en dessous...

Pensez dans le message du commit à mettre un message clair indiquant la révision de départ et la révision d'arrivée sur la branche source (2.6 dans notre cas) ainsi que les branches sources et destination... Si vous avez besoin de faire un autre merge après, vous aurez besoin de savoir à quelle révision vous vous étiez arrêté la dernière fois... 

# aller dans le répertoire de la branche 2.7 sur sa machine locale
cd ..../myProduct/2.7
# appliquer les modifications depuis la création de la branche
svn merge -r5234:HEAD http://svn.xxx.com/myProduct/2.6 .
# s'il n'y a pas de conflit, vérifier que tout
# marche bien et commiter le tout sur la branche 2.7
svn commit -m "merge [Rev:5234:5xxx] myProduct/2.6->myProduct/2.7"

Source https://www.kitpages.fr/svn_overview.html