51 votes

Comment sauvegarder un référentiel SVN distant

Je suis en train de migrer mon serveur SVN de mon serveur à la maison de mon serveur distant afin que je puisse accéder plus facilement à partir d'autres endroits. Mon serveur distant n'est pas sauvegardé je tiens donc à régulièrement les sauvegarder sur mon serveur à la maison.

Serveur distant est un serveur Windows 2003 server. La maison de serveur Windows Home Server.

Quelle est la meilleure façon de le faire? puis-je obtenir mon serveur à la maison pour faire un dump de la distance de serveur tous les soirs? La bande passante n'est pas énorme, mais si je pouvais juste la copie de toute nouvelle archivages pour un serveur SVN sur mon serveur à la maison que ce serait bien.

Toutes les suggestions de bienvenue.

119voto

Stefan Points 29091

Utilisez simplement le svnsync de commande.

Tout d'abord, de créer un nouveau dépôt sur votre ordinateur à la maison.

svnadmin create c:\backuprepo

Ensuite, créez un fichier nommé pre-revprop-change.chauve-souris:

echo exit 0 > c:\backuprepo\hooks\pre-revprop-change.bat

Ou sur Unix:

echo -ne '#!/bin/sh\nexit 0' > /backuprepo/hooks/pre-revprop-change

puis, d'initialiser la synchronisation:

svnsync init file:///c:/backuprepo https://url/of/your/repository

Après, vous pouvez simplement exécuter

svnsync sync file:///c:/backuprepo

une fois un jour ou deux, et vous obtiendrez uniquement les modifications qui ne sont pas encore dans votre référentiel de sauvegarde. La première fois, cela prend du temps, mais une fois que vous avez synchronisé votre référentiel de sauvegarde avec le monde réel, il ne faudra que quelques secondes pour synchroniser parce que seules les révisions de nouveau besoin d'être synchronisés.

24voto

joesdiner Points 333

Comme de la subversion 1.7, vous pouvez également utiliser la commande nouveau svnrdump. À partir de la documentation:

Dump-qui est, de générer un référentiel de vidage de flux de révision du référentiel de l'élément situé à la SOURCE_URL, l'impression de l'information sur la sortie standard.

Utilisation serait:

svnrdump dump http://example.com/repos/ > repos.dump

Ceci crée un fichier de vidage" du référentiel en repos.dump. C'est une sauvegarde complète de votre référentiel de données, y compris l'histoire, mais n'est pas directement lisible par un client subversion. Si vous avez besoin de restaurer ces données, l'utilisation de la norme svnadmin outils:

svnadmin create c:\backup-repos
svnadmin load c:\backup-repose < repos.dump

N'avez pas fait les tests, mais ce pourrait être plus lent que l' svnsync. svnrdump va faire un dump complet du référentiel à chaque fois, où je suis en supposant synsync continuera d'importer des changements dans le dépôt depuis la dernière fois qu'il l'était. Vous aurez un fichier unique contenant l'ensemble de votre référentiel, ce qui peut ou ne peut pas être plus facile à gérer.

Notez que vous pouvez rediriger la sortie d' svnrdump par gzip ou programme similaire, éventuellement, de réduire considérablement la taille du fichier.

12voto

yanokwa Points 1004

créez votre référentiel local

svnadmin create /Users/jsmith/repo

créer un script de hook pre-revprop-change vide

echo '#!/bin/bash' > /Users/jsmith/repo/hooks/pre-revprop-change

rendre le script hook pre-revprop-change exécutable

chmod +x /Users/jsmith/backup/hooks/pre-revprop-change

initialiser svnsync

svnsync init file:////Users/jsmith/repo

synchroniser les pensions

https://www.smith.com/repo

7voto

Wim Points 7248

rsync (ou DeltaCopy auquel s’ajoute une interface utilisateur Windows) serait un bon choix pour copier de manière incrémentielle l’ensemble du référentiel au niveau du système de fichiers.

Vous pouvez également utiliser svnsync pour copier les nouvelles révisions directement d'un serveur SVN à un autre.

2voto

EFraim Points 7137

Vous pouvez utiliser un script sur un serveur distant, qui vide le référentiel, puis copie sur votre ordinateur local (ou le laisse dans un endroit prédéfini pour votre ordinateur local pour copier)

Vous pouvez soit synchroniser les répertoires de sauvegarde avec rsync ou scp.

Le script peut être exécuté avec des "Tâches Planifiées" et peut produire uniquement le nom des fichiers de sauvegarde, qui sera plus tard par synchronisés dans le ci-dessus mentionné façon par votre ordinateur local. (et puis peut-être supprimé)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X