web-dev-qa-db-fra.com

Réduire la taille du dossier .svn

Dans notre projet, nous avons pris la décision de réduire le temps de construction en utilisant des binaires pré-construits. Hebdomadairement/mensuellement, nous créons une version stable et l'enregistrons dans le référentiel. La construction utilise ces binaires au lieu de tout compiler à partir de la source.

Pour la vitesse de construction, c'est fantastique. Mais, sans surprise, cela alourdit vraiment la taille de la caisse SVN. Notre coffre est actuellement à environ 22 Go. Je réalise que ce n’est pas l’usage prévu de Subversion. Mais nous n'avons pas d'alternative pour le moment.

Mais j'aimerais améliorer la situation actuelle. Le dossier .svn Contribue grandement à la taille de la ligne réseau sur le disque. Lorsque les fichiers binaires sont mis à jour, il semble conserver plusieurs bases dans le dossier .svn. Autrement dit, si un fichier binaire de 4 Go est une copie dans le .svn. S'il est mis à jour, le dossier .svn Contient la base d'origine plus la nouvelle base et contient jusqu'à 8 Go pour ce fichier.

Est-il possible de dire à Subversion de ne pas conserver de base dans le dossier .svn Pour certains fichiers? Grâce à Google, j'ai trouvé une question similaire, Comment diminuer la taille du dossier .svn?.

La réponse reçue par Simon était

  • Utilisez une caisse partielle (ce qui ne fonctionnera pas pour moi car j'ai besoin des fichiers binaires)
  • Ce n'est pas encore une fonctionnalité de Subversion
  • Cela a été discuté, mais ne sera pas une fonctionnalité avant au moins Subversion 1.8

Heureusement pour moi, Subversion 1.8 est sorti. Cette fonctionnalité a-t-elle été ajoutée?

Je ne l'ai pas remarqué dans les notes de publication . Bien que "la réduction du stockage des répertoires et des propriétés" semble prometteuse.

61
Shane Gannon

Il n'y a aucun moyen de se débarrasser de la nécessité de stocker des vierges à ce stade. On en a parlé, mais ce n’est en fait pas un problème facile à résoudre car il existe de nombreuses situations de cas d’utilisation différentes qui seraient présentées en les supprimant éventuellement.

Avec la version 1.7, la mémoire d'origine a été modifiée et dans certains cas, la situation peut être pire qu'avant la version 1.7. Les Pristines sont maintenant stockées dans des fichiers nommés par le hachage de Pristine. Donc, si vous avez plusieurs fichiers identiques, vous ne conserverez pas de doublons. Cependant, nous n'effectuons plus le nettoyage des propriétés vierges. Donc, ils continuent juste à construire. Vous pouvez déclencher la suppression des Pristines inutilisées avec svn cleanup.

Il est intéressant de garder les ressources vierges inutilisées. Si vous changez de branche, vous n'avez plus à télécharger les éléments pour lesquels vous disposez déjà des propriétés vierges dans 1.8.

64
Ben Reser

Pour ceux qui utilisent la commande de nettoyage du client TortoiseSVN plutôt que la commande svn cleanup, La taille des dossiers .svn Peut être réduite en s'assurant que Vide les copies originales l'option est cochée:

enter image description here

En outre, il est recommandé de nettoyer au niveau supérieur de la copie de travail, comme indiqué ici .

[Modifier]

Selon cette réponse et journal de modification SVN , svn cleanup Dispose d'une option permettant d'aspirer des copies originales (/vacuum). Ceci est fait par défaut à partir de 1.8. À partir de la version 1.10, cette opération n'est plus effectuée par défaut, mais peut être exécutée à l'aide de la commande svn cleanup --vacuum-pristines (Voir cette réponse ).

29
Alexei