SVN - Suivi de branche avec svnmerge (Mini Howto-FR)

Posted in svn

svnmerge != svn merge

svn merge est une commande intégrée à SVN

svnmerge est un petit outil pratique (script python) pour faciliter la gestion de branches avec SVN.

Que fait svnmerge :

Toutes les changements doivent être appliquées (commit) dans la branche avant d’utiliser svnmerge

Exemple : Garder une branche synchronisée avec le trunk

  1. Fusionner à la main le trunk dans la branche, puis
  2. svnmerge init svn+ssh://dev@url/trunk
  3. svn commit -F svnmerge-commit-message.txt

Ces 3 étapes vont permettre d’enregistrer dans les metadata de la branche qu’elle est synchronisée avec le trunk jusqu’à la révision courante.

Rester synchronisé

svnmerge avail -l : affiche la liste des révisions qui peuvent être fusionnées en indiquant les messages de commit et les fichiers impactés.

Synchroniser :

  1. svnmerge merge [-r liste de révisions] : applique les révisions non fusionnées du trunk dans la branche.
  2. résolution des conflits potentiels, comme après un svn up
  3. svn commit -F svnmerge-commit-message.txt pour valider

Fusionner dans l’autre sens : de la branche vers le trunk

1ère idée : c’est équivalent à garder le trunk synchronisé avec la branche

MAIS, généralement on veut :

Problème :

Conclusion

Idéal pour garder une branche synchronisée avec le trunk, personnellement, je n’utilise pas svnmerge pour envoyer les modifications de la branche vers le trunk.