Nwlapcug.com


Come sincronizzare i repository Subversion

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.