VisualSVN Server pour Windows comprend une fonctionnalité intégrée pour sauvegarder et vérifier les référentiels SVN dans les délais: visualsvn.com/server/features/backup
Je ne sais pas avec certitude, mais certains outils comme 7-zip pourraient sûrement compresser les données de STDIN, ce qui signifie que vous pourriez également utiliser le premier style sur Windows.
nickf le
5
Je regarde cela moi-même et un commentaire de la documentation svnbook.red-bean.com/nightly/en/… est que vous obtiendrez une très grande sortie de vidage svnadmin, sauf si vous utilisez l'option --deltas.
Utilisation de 7Zip: svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn Cela créera un fichier nommé 'backup.7z' qui contient un seul fichier, 'backupname.svn', qui est la sortie de svnadmin dump.
Matt
4
@Josh Stodola bash :for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Vous pouvez exécuter cette commande à tout moment et effectuer une copie sécurisée du référentiel, que d'autres processus utilisent ou non le référentiel.
Vous pouvez bien sûr ZIP (de préférence 7-Zip) la copie de sauvegarde. À mon humble avis, c'est la plus simple des options de sauvegarde: en cas de catastrophe, il n'y a rien d'autre à faire que de le décompresser.
@daremon: Je vous suggère de lire les réponses aux articles auxquels vous avez lié, en particulier celui qui mentionne svnadmin dump n'inclut pas les fichiers de contrôle du dépôt.
Powerlord
course serrée, mais je vote pour svnadmin dump après avoir lu les réponses suggérées par R. Bemrose
mobibob
La commande hotcopy n'écrase ni n'incrémente les sauvegardes qu'elle génère. Donc, si vous prévoyez de l'automatiser dans Windows à l'aide du planificateur de tâches, consultez le fichier de commandes suivant: cfchimp.com/wordpress/2008/05/…
Ryan Sampson
1
Un mot d'avertissement. Ne copiez pas à chaud une copie miroir svnsync d'un référentiel pendant que svnsync est en cours d'exécution! La copie résultante peut être corrompue. Voir ce fil pour plus de détails: subversion.open.collab.net/ds/…
zvolkov
24
Il existe un script hotbackup.py disponible sur le site Web de Subversion qui est assez pratique pour automatiser les sauvegardes.
J'utilise svnsync , qui configure un serveur distant comme miroir / esclave. Nous avons eu un serveur en panne il y a deux semaines, et j'ai pu basculer l'esclave en position principale assez facilement (il suffit de réinitialiser l'UUID du référentiel d'esclaves à l'original).
Un autre avantage est que la synchronisation peut être exécutée par un intermédiaire, plutôt que comme une tâche sur l'un ou l'autre serveur. J'ai eu un client pour deux VPN synchroniser un référentiel entre eux.
donc il synchronise les dernières versions de repo entre les deux évidemment?
PositiveGuy
1
Même si c'est dans le titre, je ne sais pas si je l'appellerais une "synchronisation". C'est vraiment une sauvegarde, où il faudra réviser le maître et les mettre sur l'esclave. Si vous apportiez des modifications à l'esclave, elles interrompraient la «synchronisation» ou entraîneraient une folie. L'utilisation prévue de l'outil est de créer des miroirs en lecture seule hors site, mais il fait un travail admirable de création d'un serveur de sauvegarde.
Tom Mayfield
1
L'avantage de svnsync est que vous pouvez l'exécuter très souvent. Toutes les dix minutes ou même à chaque commit (à l'aide d'un hook). L'avantage de cela est que l'on peut réduire la perte de données potentielle que vous obtiendriez autrement entre la dernière sauvegarde et la perte du repo en direct.
Cette sous-commande effectue une sauvegarde «à chaud» complète de votre référentiel, y compris tous les hooks, les fichiers de configuration et, bien sûr, les fichiers de base de données.
Donc, si vous êtes autorisé à arrêter le serveur, faites-le et copiez simplement le référentiel, soit avec un script, soit avec un outil de sauvegarde. Cobian Backup s'intègre parfaitement ici car il peut arrêter et démarrer des services automatiquement, et il peut effectuer des sauvegardes incrémentielles de sorte que vous ne sauvegardez que les parties du référentiel qui ont changé récemment (utile si le référentiel est volumineux et que vous sauvegardez vers un emplacement distant) ).
Exemple:
Installer Cobian Backup
Ajoutez une tâche de sauvegarde:
Définissez la source dans le dossier du référentiel (par exemple C:\Repositories\),
Ajouter un événement de pré-sauvegarde "STOP_SERVICE"VisualSVN,
Ajouter un événement post-sauvegarde, "START_SERVICE"VisualSVN,
Définissez d'autres options selon vos besoins. Nous avons mis en place des sauvegardes incrémentielles, y compris la suppression des anciennes, le calendrier de sauvegarde, la destination, la compression incl. fractionnement d'archives, etc.
il existe 2 méthodes principales pour sauvegarder un serveur svn, la première est la copie à chaud qui créera une copie de vos fichiers de référentiel, le principal problème avec cette approche est qu'elle enregistre des données sur le système de fichiers sous-jacent, donc vous pouvez avoir des difficultés à essayer de republier ce type de sauvegarde dans un autre type de serveur svn ou une autre machine. il existe un autre type de sauvegarde appelé dump, cette sauvegarde ne sauvegardera aucune information du système de fichiers sous-jacent et son potable sur tout type de serveur SVN basé dans la subversion de tigiris.org.
à propos de l'outil de sauvegarde, vous pouvez utiliser l'outil svnadmin (il est capable de faire du hotcopy et du vidage) à partir de l'invite de commande, cette console réside dans le même répertoire où réside votre serveur svn ou vous pouvez google pour les outils de sauvegarde svn.
ma recommandation est que vous fassiez les deux types de sauvegardes et que vous les retiriez du bureau pour votre compte de messagerie, le service amazon s3, ftp ou azure, de cette façon vous aurez une sauvegarde sécurisée sans avoir à héberger le serveur svn quelque part hors de votre bureau.
Cet outil simple permet de faire une sauvegarde de vidage d'un référentiel de subversion local et distant. Le logiciel fonctionne de la même manière que le "svnadmin" mais n'est pas une interface graphique sur celui-ci. Au lieu de cela, utilisez directement les bibliothèques de subversion pour permettre de créer un vidage en mode autonome sans aucun autre outil supplémentaire.
Merci de partager cela, fait exactement comme indiqué.
Ed DeGagne
3
J'aime simplement copier tout le répertoire repo dans mon emplacement de sauvegarde. De cette façon, si quelque chose se produit, vous pouvez simplement recopier le répertoire et être prêt à partir immédiatement.
Assurez-vous simplement de conserver les autorisations, si nécessaire. Habituellement, cela ne concerne que les machines Linux.
ce n'est pas vraiment sûr si quelqu'un fait un commit pendant une opération de copie - je l'ai eu même avec seulement 4 personnes ayant accès au repo et l'utilisant rarement. Voir la réponse de Duncan sur l'utilisation de la copie à chaud.
nickf le
Cependant, si vous travaillez complètement en solo, je suppose que c'est un moyen sûr de sauvegarder un dépôt? J'utilise la subversion pour mes projets personnels, et c'est ce que je fais actuellement.
Andrew Garrison
3
Pour les référentiels hébergés, vous pouvez utiliser la version 1.7 de svn svnrdump, ce qui est similaire aux svnadmin dumpréférentiels locaux. Cet article fournit une belle procédure, qui se résume essentiellement à:
Si vous utilisez le format de référentiel FSFS (par défaut), vous pouvez copier le référentiel lui-même pour effectuer une sauvegarde. Avec l'ancien système BerkleyDB, le référentiel n'est pas indépendant de la plate-forme et vous voudriez généralement utiliser le vidage svnadmin.
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
Ceci est le fichier batch que j'ai en cours d'exécution qui effectue mes sauvegardes
Cela prend du temps et indique qu'il récupère les journaux du référentiel. Il crée un ensemble de fichiers à l'intérieurC:\Documents and Settings\nverma\.svk\local .
Pour mettre à jour ce référentiel local avec le dernier ensemble de modifications du référentiel distant, exécutez simplement la commande précédente de temps en temps.
Vous pouvez maintenant jouer avec votre référentiel local (/home/user/.svk/local dans cet exemple) comme s'il s'agissait d'un référentiel SVN normal!
Le seul problème avec cette approche est que le référentiel local est créé avec des incréments de révision par la révision réelle dans le référentiel distant. Comme quelqu'un l'a écrit:
La commande svk miror génère une validation dans le référentiel qui vient d'être créé. Ainsi, tous les commits créés par la synchronisation suivante auront des numéros de révision incrémentés de un par rapport au référentiel public distant.
Mais, c'était OK pour moi car je ne voulais qu'une sauvegarde du référentiel distant de temps en temps, rien d'autre.
Vérification:
Pour vérifier, utilisez le client SVN avec le référentiel local comme ceci:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
Cette commande va ensuite extraire la dernière révision du référentiel local. À la fin, il est dit Checked out revision N. CeN une de plus que la révision réelle trouvée dans le référentiel distant (en raison du problème mentionné ci-dessus).
Pour vérifier que svk a également apporté toute l'histoire, la vérification SVN a été exécutée avec diverses révisions plus anciennes à l'aide -rde 2, 10, 50 etc. Ensuite, les fichiers dans<local-dir-path-to-checkout-onto> ont été confirmés comme provenant de cette révision.
À la fin, fermez le répertoire C:/Documents and Settings\nverma/.svk/local/et stockez le zip quelque part. Continuez à le faire régulièrement.
comme d'autres l'ont dit, hot-backup.py de l'équipe Subversion a de belles fonctionnalités sur tout simplement svnadmin hotcopy
J'exécute une tâche planifiée sur un script python qui araignée pour tous mes référentiels sur la machine, et utilise le hotbackup pour conserver plusieurs jours de hotcopies (paranoïaques de corruption) et svnadmin svndumpsur une machine distante. La restauration est vraiment facile à partir de cela - jusqu'à présent.
Réponses:
Vous pouvez utiliser quelque chose comme (Linux):
Étant donné que Windows ne prend pas en charge GZip, c'est simplement:
la source
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
Cela créera un fichier nommé 'backup.7z' qui contient un seul fichier, 'backupname.svn', qui est la sortie desvnadmin dump
.for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Nous utilisons svnadmin hotcopy, par exemple:
Selon le livre :
Vous pouvez bien sûr ZIP (de préférence 7-Zip) la copie de sauvegarde. À mon humble avis, c'est la plus simple des options de sauvegarde: en cas de catastrophe, il n'y a rien d'autre à faire que de le décompresser.
la source
Il existe un script hotbackup.py disponible sur le site Web de Subversion qui est assez pratique pour automatiser les sauvegardes.
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
la source
Voici un script Perl qui va:
Le scénario:
Source de script et plus de détails sur le rationnel de ce type de sauvegarde.
la source
J'utilise svnsync , qui configure un serveur distant comme miroir / esclave. Nous avons eu un serveur en panne il y a deux semaines, et j'ai pu basculer l'esclave en position principale assez facilement (il suffit de réinitialiser l'UUID du référentiel d'esclaves à l'original).
Un autre avantage est que la synchronisation peut être exécutée par un intermédiaire, plutôt que comme une tâche sur l'un ou l'autre serveur. J'ai eu un client pour deux VPN synchroniser un référentiel entre eux.
la source
svnadmin hotcopy
la source
svnbackup sur Google Code, une application console .NET.
la source
Vous pouvez créer une sauvegarde de référentiel ( vidage ) avec
svnadmin dump
.Vous pouvez ensuite l'importer en utilisant
svnadmin load
.Référence détaillée dans le SVNBook: "Migration des données du référentiel à l'aide de svnadmin"
la source
Fondamentalement, il est sûr de copier le dossier du référentiel si le serveur svn est arrêté. (source: https://groups.google.com/forum/?fromgroups#!topic/visualsvn/i_55khUBrys%5B1-25%5D )
Donc, si vous êtes autorisé à arrêter le serveur, faites-le et copiez simplement le référentiel, soit avec un script, soit avec un outil de sauvegarde. Cobian Backup s'intègre parfaitement ici car il peut arrêter et démarrer des services automatiquement, et il peut effectuer des sauvegardes incrémentielles de sorte que vous ne sauvegardez que les parties du référentiel qui ont changé récemment (utile si le référentiel est volumineux et que vous sauvegardez vers un emplacement distant) ).
Exemple:
Ajoutez une tâche de sauvegarde:
Définissez la source dans le dossier du référentiel (par exemple
C:\Repositories\
),Ajouter un événement de pré-sauvegarde
"STOP_SERVICE"
VisualSVN,Ajouter un événement post-sauvegarde,
"START_SERVICE"
VisualSVN,Définissez d'autres options selon vos besoins. Nous avons mis en place des sauvegardes incrémentielles, y compris la suppression des anciennes, le calendrier de sauvegarde, la destination, la compression incl. fractionnement d'archives, etc.
Profit!
la source
il existe 2 méthodes principales pour sauvegarder un serveur svn, la première est la copie à chaud qui créera une copie de vos fichiers de référentiel, le principal problème avec cette approche est qu'elle enregistre des données sur le système de fichiers sous-jacent, donc vous pouvez avoir des difficultés à essayer de republier ce type de sauvegarde dans un autre type de serveur svn ou une autre machine. il existe un autre type de sauvegarde appelé dump, cette sauvegarde ne sauvegardera aucune information du système de fichiers sous-jacent et son potable sur tout type de serveur SVN basé dans la subversion de tigiris.org.
à propos de l'outil de sauvegarde, vous pouvez utiliser l'outil svnadmin (il est capable de faire du hotcopy et du vidage) à partir de l'invite de commande, cette console réside dans le même répertoire où réside votre serveur svn ou vous pouvez google pour les outils de sauvegarde svn.
ma recommandation est que vous fassiez les deux types de sauvegardes et que vous les retiriez du bureau pour votre compte de messagerie, le service amazon s3, ftp ou azure, de cette façon vous aurez une sauvegarde sécurisée sans avoir à héberger le serveur svn quelque part hors de votre bureau.
la source
Voici un outil Windows GUI pour faire un vidage des référentiels de subversion locaux et distants:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
La description de l'outil indique:
Cet outil simple permet de faire une sauvegarde de vidage d'un référentiel de subversion local et distant. Le logiciel fonctionne de la même manière que le "svnadmin" mais n'est pas une interface graphique sur celui-ci. Au lieu de cela, utilisez directement les bibliothèques de subversion pour permettre de créer un vidage en mode autonome sans aucun autre outil supplémentaire.
J'espère que cette aide ...
la source
J'aime simplement copier tout le répertoire repo dans mon emplacement de sauvegarde. De cette façon, si quelque chose se produit, vous pouvez simplement recopier le répertoire et être prêt à partir immédiatement.
Assurez-vous simplement de conserver les autorisations, si nécessaire. Habituellement, cela ne concerne que les machines Linux.
la source
Pour les référentiels hébergés, vous pouvez utiliser la version 1.7 de svn
svnrdump
, ce qui est similaire auxsvnadmin dump
référentiels locaux. Cet article fournit une belle procédure, qui se résume essentiellement à:Après avoir téléchargé le fichier de vidage, vous pouvez l'importer localement
ou téléchargez-le sur l'hôte de votre choix.
la source
Si vous utilisez le format de référentiel FSFS (par défaut), vous pouvez copier le référentiel lui-même pour effectuer une sauvegarde. Avec l'ancien système BerkleyDB, le référentiel n'est pas indépendant de la plate-forme et vous voudriez généralement utiliser le vidage svnadmin.
La rubrique de documentation svnbook pour la sauvegarde recommande la
svnadmin hotcopy
commande, car elle traitera des problèmes tels que les fichiers en cours d'utilisation et autres.la source
Ceci est le fichier batch que j'ai en cours d'exécution qui effectue mes sauvegardes
la source
Pour la solution de sauvegarde quotidienne et complète, utilisez simplement les scripts de sauvegarde SVN ici .
la source
J'ai compilé les étapes que j'ai suivies dans le but de faire une sauvegarde du référentiel SVN distant de mon projet.
Cela prend du temps et indique qu'il récupère les journaux du référentiel. Il crée un ensemble de fichiers à l'intérieur
C:\Documents and Settings\nverma\.svk\local
.Pour mettre à jour ce référentiel local avec le dernier ensemble de modifications du référentiel distant, exécutez simplement la commande précédente de temps en temps.
Vous pouvez maintenant jouer avec votre référentiel local (
/home/user/.svk/local
dans cet exemple) comme s'il s'agissait d'un référentiel SVN normal!Le seul problème avec cette approche est que le référentiel local est créé avec des incréments de révision par la révision réelle dans le référentiel distant. Comme quelqu'un l'a écrit:
Mais, c'était OK pour moi car je ne voulais qu'une sauvegarde du référentiel distant de temps en temps, rien d'autre.
Vérification:
Pour vérifier, utilisez le client SVN avec le référentiel local comme ceci:
Cette commande va ensuite extraire la dernière révision du référentiel local. À la fin, il est dit
Checked out revision N
. CeN
une de plus que la révision réelle trouvée dans le référentiel distant (en raison du problème mentionné ci-dessus).Pour vérifier que svk a également apporté toute l'histoire, la vérification SVN a été exécutée avec diverses révisions plus anciennes à l'aide
-r
de 2, 10, 50 etc. Ensuite, les fichiers dans<local-dir-path-to-checkout-onto>
ont été confirmés comme provenant de cette révision.À la fin, fermez le répertoire
C:/Documents and Settings\nverma/.svk/local/
et stockez le zip quelque part. Continuez à le faire régulièrement.la source
comme d'autres l'ont dit, hot-backup.py de l'équipe Subversion a de belles fonctionnalités sur tout simplement
svnadmin hotcopy
J'exécute une tâche planifiée sur un script python qui araignée pour tous mes référentiels sur la machine, et utilise le hotbackup pour conserver plusieurs jours de hotcopies (paranoïaques de corruption) et
svnadmin svndump
sur une machine distante. La restauration est vraiment facile à partir de cela - jusqu'à présent.la source
1.1 Créer un vidage à partir du référentiel SVN (Subversion)
Exemple réel
1.2 Dump créé par Gzip
Exemple réel
1.3 SVN Dump et Gzip Dump avec One-liner
Exemple réel
Comment sauvegarder (vider) et restaurer (charger) le référentiel SVN (Subversion) sous Linux.
Ref: sauvegarde et restauration de svn subversion
la source