Sisällys
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.
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.
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.