Sådan Sync Subversion Arkiver

September 8

Subversion brugere kan føle behov for at oprette flere spejle af en master Subversion repository til at tillade medlemmer i forskellige geografiske steder for at få adgang til kopier af den aktuelle kode hurtigt. Synkronisering af depoter på denne måde også beskytter dem i tilfælde af en teknisk fejl på en server. For at lette synkronisering, Subversion giver "svnsync" værktøj.

Instruktioner

1 Åbn en terminal.

2 Opret en ny Subversion repository ved at skrive:

mkdir repository_mirror

svnadmin skabe repository_mirror

cd respository_mirror

Dette vil holde spejlet kopi af din subversion repository.

3 Skriv følgende for at redigere svnserve.conf konfigurationsfilen:

nano conf / svnserve.conf

Fjern de "#" fra den linje, der lyder:

password-db = passwd

Luk nano.

4 Skriv følgende for at redigere "passwd" fil:

nano conf / passwd

Indsæt følgende tekst under "[brugere]" linje:

svnsync = hemmelighed

Skift hemmeligheden til den adgangskode, som du gerne svnsync at bruge, når den synkroniserer dine depoter. Gem dit arbejde, og luk nano.

5 Skriv følgende for at redigere et nyt dokument, der indeholder et script nødvendig af svnsync programmet:

nano kroge / pre-revprop-change

Indsæt følgende i den:

! / Bin / sh

USER = "$ 3"

hvis [ "$ USER" = "svnsync"]; afslut derefter 0; fi

echo "Kun svnsync brugeren kan ændre revprops"> & 2

afkørsel 1

Gem dit arbejde tæt nano og skrive følgende for at gøre det til en eksekverbar script:

chmod + x kroge / pre-revprop-change

6 Initialiser sync ved at skrive følgende kommando:

svnsync init file: /// MAPPE / respository_mirror svn: //SOURCE.COM/source_repos

Udskift "Directory" med den mappe, hvor du oprettede arkivet spejl og erstatte de "SOURCE.COM/source_repos" med navnet på serveren og repository navn til dit spejl.

7 Start synkronisering proces:

svnsync sync --username svnsync file: /// ADRESSEBOG / respository_mirror

Igen erstatte filnavnet og stien med dem, du brugte på dit system for spejlet.

TIPS

  • Tilføj følgende linie til din "/ etc / crontab" fil for at planlægge en opdatering af dit spejl hvert minut:
  • * * * * * / Usr / local / bin / svnsync --non-interaktiv sync file: /// MAPPE / respository_mirror
  • Brugere bør aldrig begå ændringer i spejlet repository selv. Alle ændringer bør være forpligtet til kilden repository og lov til at udbrede ud til spejlene ved hjælp af svnsync værktøj.

relaterede artikler