J'ai un dépôt subversion avec la disposition standard, c'est-à-dire trunk/ et branches/ (et tags/). Lorsque je travaille sur un changement plus important, une branche de fonctionnalité est utilisée, régulièrement synchronisée avec le tronc, et plus tard réintégrée dans le tronc (j'utilise 1.5 maintenant). C'est plutôt standard.
Ce que je me demande, c'est si une telle branche de fonctionnalité, une fois terminée et fusionnée, doit être conservée ou supprimée. Le livre de subversion semble parfois suggérer qu'il est courant de les supprimer, mais j'ai également vu un tas de projets Open Source qui conservent les branches.
Je suis également quelque peu préoccupé par la façon dont la suppression d'une branche rendra plus difficile le suivi des branches qui ont existé, en particulier lorsque des noms potentiellement dupliqués entrent dans le scénario (disons que nous recherchons-refactor deux fois), leurs historiques de commit disparaissant quelque part dans la profondeur du dépôt, etc.
D'un autre côté, les branches sont très utilisées, surtout depuis la version 1.5, et j'aime l'idée de ne pas avoir à fouiller dans une grande liste de branches inactives pour trouver celles sur lesquelles je travaille actuellement.
Quels sont les avantages et les inconvénients qui me manquent ? Que font les gens ?