Résumé

Nous avons traité de nombreux sujets dans ce chapitre. Nous avons présenté les concepts d'étiquettes et de branches et montré comment Subversion implémente ces concepts en copiant des répertoires avec la commande svn copy. Nous avons expliqué comment utiliser svn merge pour copier des modifications d'une branche à l'autre ou pour revenir en arrière sur des modifications non-satisfaisantes. Nous avons étudié l'utilisation de svn switch pour créer des copies de travail mixtes, pointant vers des emplacements variés d'un dépôt. Et nous avons évoqué la façon dont on peut gérer l'organisation et le cycle de vie des branches dans un dépôt.

Tâchez de garder en mémoire la devise de Subversion : les branches et les étiquettes ne coûtent quasiment rien. Donc n'ayez pas peur de les utiliser quand vous en avez besoin !

En guise de rappel utile de toutes les opérations dont nous avons parlé, voici un tableau de référence très pratique, à consulter lorsque vous commencerez à utiliser des branches.

Tableau 4.1. Commandes de gestion des branches et des fusions

Action Commande
Créer une branche ou une étiquette svn copy URL1 URL2
Faire pointer une copie de travail vers une branche ou une étiquette svn switch URL
Synchroniser une branche avec le tronc svn merge trunkURL; svn commit
Voir l'historique des fusions ou les ensembles de modifications susceptibles d'être fusionnés svn mergeinfo target --from-source=URL
Fusionner une branche vers le tronc svn merge --reintegrate branchURL; svn commit
Fusionner une modification précise svn merge -c REV URL; svn commit
Fusionner un ensemble de modifications svn merge -r REV1:REV2 URL; svn commit
Empêcher qu'une modification ne soit fusionnée automatiquement svn merge -c REV --record-only URL; svn commit
Prévisualiser une fusion svn merge URL --dry-run
Abandonner une fusion svn revert -R .
Ressusciter un élément de l'historique svn copy URL@REV localPATH
Revenir en arrière sur une modification déjà propagée svn merge -c -REV URL; svn commit
Examiner l'historique en tenant compte des informations de fusion svn log -g; svn blame -g
Créer une étiquette à partir d'une copie de travail svn copy . tagURL
Réorganiser une branche ou une étiquette svn mv URL1 URL2
Supprimer une branche ou une étiquette svn rm URL