comme le dit Hubert, svnadmin pack
va regrouper tous les fichiers repo individuels dans un répertoire dans un seul gros fichier. Cela vous fera économiser de l'espace, mais cela ne fait que retarder le jour du calcul pour vous. (il devrait cependant accélérer les opérations d'historique, donc c'est une bonne suggestion de toute façon). Une chose à noter est qu'il ne fonctionne que sur les répertoires partagés (c'est-à-dire que la nouvelle structure de répertoires consiste à mettre 1000 révisions dans un seul répertoire, puis à démarrer un nouveau répertoire) et qu'il ne contient que les anciens répertoires de fragments, pas celui avec la révision actuelle en elle.
Donc, votre seule option est de supprimer les anciennes révisions de votre historique. Cela nécessite le vidage et le chargement de svnadmin , avec éventuellement un filtre pour supprimer les répertoires de votre référentiel dont vous n'avez plus besoin. (ex: anciennes branches temporaires).
Le vidage est facile: svnadmin dump -r xxx:HEAD
où xxx est la révision la plus ancienne que vous souhaitez conserver (c'est-à-dire qu'elle videra les plus récentes, de sorte que votre ancienne révision est supprimée, comme l'archivage). Vous pouvez conserver l'archive des anciennes révisions en les vidant aussi ( svnadmin dump -r 1:xxx
)
Une fois que vous avez votre fichier de vidage, le charger est aussi simple que d'exécuter la charge svnadmin en passant le nom du fichier de vidage. il peut être judicieux de supprimer l'ancien référentiel avant de charger le nouveau - vous bénéficierez alors des dernières propriétés du système de fichiers du serveur, si vous ne les avez pas déjà.
Si vous souhaitez conserver toutes les anciennes révisions mais filtrer certains répertoires, vous voudrez exécuter le fichier de vidage via svndumpfilter , qui supprimera les chemins spécifiés. Sachez que vous voudrez effectuer un vidage sans utiliser l'option --incremental.
Évidemment, testez toutes les opérations localement - vidage dans un fichier local, puis chargez-le dans un dépôt temporaire sur votre disque local (ce sera aussi plus rapide) et testez que l'historique et la dernière version fonctionnent bien - j'exporte la dernière révision dans un et utilisez winmerge pour vérifier que les fichiers sont identiques à une exportation de la dernière révision du repo en direct. Essayez-le aussi avec une révision historique si vous voulez être paranoïaque.