2009-12-31 3 views
5

J'utilise un service subversion hébergé pour un certain nombre de projets de développement personnel et professionnel. Tout en conservant des sauvegardes comme n'importe quelle société d'hébergement, je voudrais pouvoir créer mes propres sauvegardes locales, au cas où. Ce service vous permet de demander et de télécharger une sauvegarde, mais ils chargent de l'argent pour ce faire. Est-il possible de générer une sauvegarde/sauvegarde de mon référentiel hébergé en me connectant en tant que client via HTTPS?Pouvez-vous sauvegarder/créer un vidage d'un dépôt subversion sans accès direct au serveur?

Répondre

1

Théoriquement "non", car la sauvegarde peut être effectuée uniquement par la commande svnadmin. Cependant, il existe une solution non triviale pour contourner cela.

Il y a deux manières, une simple et une dure. Le simple est un utilitaire appelé rsvndump (vidage SVN à distance), vous pouvez le trouver ici: http://rsvndump.sourceforge.net/

Si une simple ne fonctionne pas pour vous (rsvnadmin a ses limitations comme écrit sur son manpage), il y a le complexe one:

La deuxième méthode plus stricte requiert l'installation de SVK, un client pour le contrôle de version distribuée, construit à l'aide de svn, en tant que client étendu. Malheureusement, la procédure d'installation n'est pas triviale, voici un guide to help.

Vous énumérez maintenant le dépôt distant en utilisant SVK:

svk ls URL-to-SVN 

Suivez les instructions. Voila, vous avez une copie locale du dépôt :). Les deux premières révisions sont liées à SVK, donc pour faire un vidage maintenant, vous exécutez:

svnadmin dump -r2:HEAD ~/.svk/local > repository.dump 

Et voilà. SVK a également l'avantage d'être préfabriqué pour les fenêtres (here's the link)

4

Vous pouvez utiliser la commande svnsync. Il obtiendra fondamentalement chaque révision d'une base de données SVN source et les commettra à votre base de données de sauvegarde. Il peut être lent la première fois que vous l'exécutez car il obtient tous les changements un à la fois, mais une fois la première synchronisation terminée, c'est une bonne solution.

+0

Notez que 'svnsync' exige que le serveur soit en cours d'exécution version SVN 1.4 ou supérieur. –