3 votes

Comment puis-je sauvegarder les dépôts SVN étape par étape

Comment puis-je sauvegarder pas à pas les dépôts SVN .... je veux sauvegarder les dépôts eux-mêmes .... je ne veux pas les sauvegarder en tant que dossier ....

9voto

julien Points 21

étape 1 Créez un script ou un fichier batch qui exécute la commande

svnadmin dump REPOS_PATH > backupfile

svnadmin est un programme qui vient avec svn, il se trouvera dans le dossier bin

backupfile est le fichier vers lequel le dépôt sera sauvegardé

REPOS_PATH est l'emplacement du dépôt

voir http://svnbook.red-bean.com/en/1.1/re31.html pour plus de détails

étape 2. Exécutez le script/fichier batch pour tester la sauvegarde.

étape 3. Testez que la sauvegarde fonctionne en exécutant la commande

svnadmin load test_path < backupfile

Essayez maintenant le dépôt créé dans test_path pour vous assurer qu'il fonctionne correctement - cela devrait être le cas et en prime, il devrait fonctionner avec les versions plus récentes de svn.

2voto

aleroot Points 3162

Suivant un script que vous pouvez enregistrer sous : svnbackup.sh

    #!/bin/bash

appname=` basename $ 0`

#
# Définir certaines valeurs par défaut
#
increment = 100
start = ""
default_history_file = "last_saved"
history_file = ""
dumpfilepath = "."
dumpfilename = "dumpfile"
verbose = false
sshopts = ""
identity = ""

#
# Fonction pour expliquer comment utiliser le programme
#
fonction utilisation () {
    écho
    écho "$ appname [-h]"
    écho "$ appname [-v] [-i increment] [-s start_rev] [--scp distant] [--identity ssh-key] [--ssh-opts options ssh] [--history-file fichier] [--out-dir nom du répertoire] [--compress (gzip|bzip2)] [--file-name nom de base du fichier de sauvegarde] chemin du dépôt svn"
    chat - < "$ dumpfile"
    RC = $?

    $ verbose && écho

    si [ $ RC -ne 0 ]
    alors
        rm -f "$ dumpfile"
        retourner $ RC
    fi

    $ verbose && écho "Créé $ dumpfile"

    si [ "$ dest"! = "" ]
    alors
        si [ -z "$ identité"]; alors
            scp $ sshopts "$ dumpfile" "$ dest"
        autre
            scp $ sshopts -i $ identité "$ dumpfile" "$ dest"
        fi
        RC = $?
        rm -f "$ dumpfile"
    fi

    retour $ RC
}

#
# Faire les sauvegardes incrémentielles
#

si [[ $ le plus récent -eq $ loop_first]]
alors
    $ verbose && écho "Aucun nouveau change-set à sauvegarder"
    sortie 0
fi

laisser boucle_last = ($ loop_first + $ increment)

si [[ $ loop_first -ne 0 ]]
alors
    laisser boucle_first = ($ loop_first + 1)
fi

tant que [[ $ loop_first -le $ plus récent ]]
faire

    si [ $ loop_last -lt $ plus récent]
    alors
        # Un "incrément" complet
        sauvegarde_revs $ loop_first $ loop_last "$ dépôt" || exit 1
        #echo $ loop_last > $ history_file
    autre
        # Au cas où les dernières revs ne constituent pas un "incrément" complet
        sauvegarde_revs $ loop_first $ youngest "$ dépôt" || sortie 1
        #echo $ le plus récent > $ history_file
    fi

    laisser boucle_first = ($ loop_last + 1)
    laisser boucle_last = ($ loop_last + $ increment)
fait

sortie 0

1voto

gbjbaanb Points 3822
  1. Arrêtez le serveur en cours d'exécution
  2. Copiez l'intégralité du répertoire contenant le dépôt, les hooks et les fichiers de configuration.
  3. Copiez également votre configuration Apache, si vous l'utilisez et qu'elle n'est pas stockée dans le répertoire ci-dessus de toute façon.

c'est tout.

Vous pouvez restaurer sur la même machine, ou une machine similaire (par exemple, de Windows à Windows). Si vous souhaitez restaurer de Windows à Linux (par exemple), alors vous voudrez probablement sauvegarder et charger le dépôt à la place. Vous devrez quand même copier le reste du répertoire également.

Les suggestions d'utiliser rsync pour copier tout est une bonne idée (mais vous devrez arrêter le serveur pour obtenir toujours une bonne sauvegarde), ou utilisez svnsync qui est un excellent utilitaire de sauvegarde incrémentielle pour SVN. (vous devrez quand même copier les hooks et les configurations aussi - je synchronise ces fichiers avec rsync et svnsync le dépôt)

0voto

Andreas Rehm Points 831

Il suffit de créer une copie du répertoire svn.

Modifier :

Comme mentionné précédemment - vous devez d'abord arrêter le serveur svn.

Vous devez également arrêter apache et ssh, si vous les utilisez pour accéder à votre dépôt.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X