Gli utenti di Subversion possono sentire la necessità di creare specchi multipli di un repository Subversion master per consentire ai membri in diversi luoghi geografici di accedere rapidamente alle copie del codice corrente. La sincronizzazione i repository in questo modo anche li protegge in caso di un guasto tecnico su un unico server. Per facilitare la sincronizzazione, Subversion fornisce lo strumento di "svnsync".
Istruzioni
1
Aprire un terminale.
2
Creare un nuovo archivio Subversion digitando:
mkdir repository_mirror
svnadmin creare repository_mirror
CD respository_mirror
Questo conterrà la copia speculare del proprio repository subversion.
3
Digitare il comando seguente per modificare il file di configurazione svnserve.conf:
nano conf/svnserve.conf
Rimuovere il carattere "#" dalla riga che legge:
password-db = passwd
Vicino nano.
4
Digitare il comando seguente per modificare il file "passwd":
nano conf/passwd
Incollare il testo seguente sotto la riga "[utenti]":
svnsync = segreto
Modificare la password che si desidera svnsync da utilizzare quando si sincronizza il tuo repository segreto. Salvare il lavoro e chiudere nano.
5
Digitare quanto segue per modificare un nuovo documento contenente uno script necessario per il programma di svnsync:
nano ganci/pre-revprop-cambiamento
Incollare il seguente:
! / bin/sh
UTENTE = "$3"
Se ["$USER" = "svnsync"]; poi uscita 0; Fi
echo "revprops modificabile solo dall'utente svnsync" > & 2
uscita 1
Salvare il lavoro, chiudere nano e digitare quanto segue per renderlo uno script eseguibile:
chmod + x ganci/pre-revprop-cambiare
6
Inizializzare la sincronizzazione digitando il seguente comando:
svnsync init file:///DIRECTORY/respository_mirror svn://SOURCE.COM/source_repos
Replace the "DIRECTORY" with the directory where you created the repository mirror and replace the "SOURCE.COM/source_repos" with the server name and repository name for your mirror.
7
Avviare il processo di sincronizzazione:
svnsync sincronizzazione-- username svnsync file:///DIRECTORY/respository_mirror
Ancora una volta, sostituire il nome del file e il percorso con quelli che utilizzato sul sistema per lo specchio.
Consigli & Avvertenze
- Aggiungere la seguente riga al file "/ etc/crontab" per pianificare un aggiornamento del vostro specchio ogni minuto:
- * * * * /usr/local/bin/svnsync - sincronizzazione non interattiva file:///DIRECTORY/respository_mirror
- Gli utenti non dovrebbero mai eseguire il commit di modifiche nel repository di specchio stesso. Tutte le modifiche dovrebbero essere impegnate a repository del codice sorgente e permesso di propagare fuori agli specchi utilizzando lo strumento svnsync.