Luku 2. Peruskäsitteitä versionhallinnasta

Sisällys

Arkisto
Lähestymistapoja versionhallintaan
Jaettujen tiedostojen ongelma
Lukitse/muuta/vapauta -ratkaisu
Kopioi-muokkaa-yhdistä -ratkaisu
Mitä Subversion tekee?
Subversion toiminnassa
Työkopiot
Arkistopaikantimet
Versiot
Kuinka työkopiot seuraavat arkiston tilaa
Yhteenveto

Tämä luku on hieman muunneltu versio samasta luvusta Subversion-kirjassa. Elektroninen versio Subversion-kirjasta on saatavilla osoitteesta http://svnbook.red-bean.com/.

Tämä luku sisältää lyhyen Subversion-ohjelman esittelyn. Jos et ole aiemmin käyttänyt versionhallintaa, tämä luku on sinua varten. Aloitamme puhumalla versionhallinnan käsitteistä yleisesti, jatkamme siitä Subversionin keskeisiin ideoihin ja esitämme muutamia yksinkertaisia käyttöesimerkkejä.

Vaikka tämän luvun esimerkit kuvaavat ihmisiä, jotka työskentelevät ohjelmakoodin parissa, kannattaa muistaa, että Subversion osaa käsitellä mielivaltaisia tiedostojoukkoja - se ei ole rajoittunut pelkästään auttamaan ohjelmoijia.

Arkisto

Subversion on keskitetty järjestelmä tiedon jakamiseen. Sen ytimessä on arkisto, jonne tiedot talletetaan. Arkisto muodostaa tiedostopuun, joka on tyypillisesti hierarkkinen kokoelma tiedostoja ja kansioita. Arkistoon voi kytkeytyä mielivaltainen määrä asiakkaita, jotka lukevat ja kirjoittavat näihin tiedostoja. Kirjoittamalla tietoa asiakas asettaa sen muiden saataville; lukemalla asiakas saa tietoa muilta.

Kuva 2.1. Tyypillinen asiakas/palvelin -järjestelmä

Tyypillinen asiakas/palvelin -järjestelmä

Miksi tämä on kiinnostavaa? Tähän saakka kuvaus kuulostaa tyypilliseltä tiedostopalvelimen määritelmältä. Arkisto on tosiaan eräänlainen tiedostopalvelin, mutta ei tavallinen sellainen. Subversion-arkisto on erityinen siinä, että se muistaa jokaisen muutoksen joka on koskaan kirjoitettu siihen: jokaisen muutoksen jokaiseen tiedostoon, ja jopa muutokset itse kansiorakenteeseen - esimerkiksi kansioiden lisäykset, poistot ja uudelleenjärjestelyt.

Kun asiakasohjelma hakee tietoa arkistosta, se näkee yleensä vain tiedostojärjestelmän viimeisimmän version. On kuitenkin mahdollista tutkia myös tiedostojärjestelmän edellisiä tiloja. Ohjelma voi tehdä esimerkiksi menneisyyteen liittyviä kysymyksiä, kuten mitä tämä kansio sisälsi viime keskiviikkona? , tai kuka muutti tätä tietostoa viimeksi, ja mitä muutoksia tehtiin? Tällaiset kysymykset ovat keskeisiä mille tahansa versionhallintajärjestelmälle: järjestelmälle, joka on suunniteltu tallettamaan ja palauttamaan tietoon ajan kuluessa tapahtuneet muutokset.