Ubuntu 20.04: Subversion repository

(Last Updated On: 9. november 2020)

Se også: Subversion kommandoer

Installation

Følgende er udført på Ubuntu 20.04 og forudsætter at Apache 2.4 er installeret:

Opret repository

Du kan oprette et nyt repository på 2 måder.

Her oprettes det i mappen subversion. Hvis mappen ikke eksisterer, vil svnadmin oprette den:

… eller omdannes en eksisterende tom mappe, bemærk punktum efter create:

Tilføj brugere

Opret en fil med brugere og adgangskoder. Første gang bruger du -c (create) for at oprette filen og tilføje en bruger i een og samme arbejdsgang.

Næste gang du tilføjer en bruger skal du UNDLADE -c, for ellers tømmer du filen.

Konfigurer subversion

Nu åbner du konfigurationsfilen i Subversion. Jeg har fjernet kommentartegnet (#) og lavet få ændringer til følgende:

/var/www/subversion/conf/svnserve.conf:

Konfigurer Apache

Nu skal Apache konfigureres. Jeg laver 2 filer, en simpel der dirigerer brugere på port 80 (http) videre til port 443 (https) og den egentlige konfiguration på port 443:

Når du herefter tjekker Apaches konfiguration, kan det være du får denne advarsel:

Det skyldes at dav_svn.load og dav.load begge indlæser svn modulet. I dav_svn.load tjekkes det om modulet allerede er indlæst, men det tjek findes ikke i dav.load, og den forsøger derfor at indlæse et modul som dav_svn.load allerede har indlæst, og det genererer ovenstående advarsel. Du kan fikse det ved at indsætte IfModule i dav.load:

Opret filstruktur

Jeg inddeler subversion i mapper der opdeler indholdet i logiske projekter:

Opret og tjek ind

Du kan oprette hele filstrukturen i en mappe hvor du har lavet en checkout af dit tomme repo, og så derefter tilføje det det hele:

Opret direkte i repository

Du kan oprette filstrukturen direkte i dit repository med svn mkdir:

Parameteren --parents sørger for at oprette alle mapper på niveauet over frontend såfremt disse ikke eksisterer.

Tilføj et eksisterende projekt

Hvis du vil føje et projekt til dit nye repository, uden at medtage historik for projektet, skal du fjerne alle .svn filer. Du kan også bare hente en ‘ren’ kopi ud af det gamle repository.

Her hentes et projekt ud og placeres i mappen projektmappe. Den vil ikke indeholde nogen .svn filer og bemærk også at de mapper i projektet der IKKE er under versionskontrol, heller ikke medtages:

Ovenstående henter indholdet af projekt ud i projektmappe. Du får således ikke projektmappe/projekt men blot projektmappe, men det der måtte ligge inde i projekt i dit repository.

Nu kan du zippe mappen, overføre den, pakke den ud og føje den til dit nye repo:

Bemærk også her at det er indholdet af projektmappe der nu placeres i frontend. Ønsker du at føje indholdet af projektmappe til en ny undermappe, skal du gøre følgende: