Depotet

Subversion er et sentralisert system for å dele informasjon. Dens kjerne er et depot, som er et sentralt lager av data. Depotet lagrer informasjon i form av et filsystemtre – et typisk hierarki av filer og kataloger. Ethvert antall klienter kobler seg til depotet, og leser eller skriver deretter til disse filene. Ved å skrive data, gjør klienten informasjonen tilgjengelig for andre; ved å lese data henter klienten informasjon fra andre. Figur 1.1, “Et typisk klient/server-system” illustrerer dette.

Figur 1.1. Et typisk klient/server-system

Et typisk klient/server-system

Så hvorfor er dette interessant? Så langt høres dette ut som definisjonen av en typisk filserver. Og det stemmer, depotet er en slags filserver, men ikke den typen du vanligvis kommer ut for. Det som gjør Subversiondepotet spesielt er at det husker hver eneste forandring noensinne skrevet til det: Hver forandring til hver eneste fil, og til og med forandringer i selve katalogtreet, som opprettelser, slettinger og ommøbleringer i filer og kataloger.

Når en klient leser data fra depotet, ser den vanligvis bare den siste versjonen av filsystemtreet. Men klienten har også muligheten til å se tidligere tilstander av filsystemet. For eksempel, en klient kan spørre historiske spørsmål som: Hva inneholdt denne katalogen forrige onsdag? eller Hvem var den siste personen som forandret denne fila, og hvilke forandringer gjorde vedkommende? Dette er typen spørsmål som er hjertet av ethvert versjonskontrollsystem: Systemer som er designet for å lagre og følge forandringer i data over tid.