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
|
Faire pointer une copie de travail vers une branche ou une étiquette |
svn switch
|
Synchroniser une branche avec le tronc |
svn merge
|
Voir l'historique des fusions ou les ensembles de modifications susceptibles d'être fusionnés |
svn mergeinfo target --from-source=
|
Fusionner une branche vers le tronc |
svn merge --reintegrate
|
Fusionner une modification précise |
svn merge -c
|
Fusionner un ensemble de modifications |
svn merge -r
|
Empêcher qu'une modification ne soit fusionnée automatiquement |
svn merge -c
|
Prévisualiser une fusion |
svn merge
|
Abandonner une fusion |
svn revert -R .
|
Ressusciter un élément de l'historique |
svn copy
|
Revenir en arrière sur une modification déjà propagée |
svn merge -c -
|
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 .
|
Réorganiser une branche ou une étiquette |
svn mv
|
Supprimer une branche ou une étiquette |
svn rm
|