Come fare il backup e ripristinare tutto il codice sorgente in svn?
Domanda
In questo momento sto usando Windows XP. Se copio l'intera cartella del repository in SVN visivo, una volta che il server è inattivo, come posso ripristinarlo tramite la cartella del repository di backup? un'altra soluzione migliore per il backup e il ripristino in svn visivo?
a proposito, qualche metodo per il backup e il ripristino nel controllo del codice sorgente visivo?
Soluzione
Puoi semplicemente copiare l'intera directory dentro e fuori. I file sono file, non c'è nulla di magico in loro.
Se vuoi fare qualcosa di più complicato, come modificare i contenuti del repository in qualche modo prima di ripristinare, allora devi scaricare e caricare.
Altri suggerimenti
svnadmin dump /path/to/repository | bzip2 -9c > svn-backup.bz2
Il passaggio di compressione è facoltativo, ovviamente.
Il vantaggio principale di questo rispetto a "copiare l'albero" il metodo raccomandato in un'altra risposta è che il Subversion "dump" format è un formato di archiviazione migliore rispetto alla maggior parte dei formati di database utilizzati da Subversion sotto il cofano nel suo repository. (È un compromesso tra velocità e semplicità.) Puoi leggere un file di dump in un editor di testo, analizzarlo facilmente e & # 8212; più importante & # 8212; importalo in un repository Subversion diverso usando un back-end di database diverso.
Ripristina il file sopra con:
bzip2 -dc svn-backup.bz2 | svnadmin load /path/to/repository
Questo è quello che uso:
#!/bin/bash
mkdir /tmp/backup_svn
for dir in /var/www/svn/*/
do
dir=${dir%*/}
svnadmin dump "${dir}" > "/tmp/backup_svn/${dir##*/}.dmp"
echo "--- Dump ${dir##*/} done!"
done
Per ripristinare il dump è necessario creare la cartella de repo prima di:
svnadmin create /var/www/svn/test
E loro:
svnadmin load /var/www/svn/test/ < /tmp/backup_svn/test.dmp
Questo metodo ripristinerà tutte le revisioni / tag / rami nel tuo repository.
Dovresti usare svnadmin hotcopy per creare un backup del repository.