Haarautuminen / merkitseminen

Eräs tärkeä versionhallintajärjestelmien ominaisuus on kyky eristää muutokset erilliseen kehityslinjaan. Tätä linjaa kutsutaan haaraksi (engl. branch). Haaroja käytetään usein, jottai voitaisiin testata uusia ominaisuuksia tekemättä pääkehityshaarasta epävakaata. Kun uutta ominaisuutta on testattu riittävästi, niin kehityshaara voidaan yhdistää takaisin pääkehityshaaraan (trunk).

Toinen versionhallintajärjestelmien ominaisuus on kyky merkitä tiettyjä versioita (esim. julkaistava versio), jotta voit milloin tahansa luoda julkaisuversion uudestaan. Tätä toimintoa kutsutaan merkitsemiseksi (engl. tagging).

Subversion ei sisällä erityisiä komentoja haarautumiseen tai merkittyjen versioiden tekoon, vaan käyttää tarkoitukseen ns. halpoja kopioita. Halvat kopiot muistuttavat Unix-järjestelmien kovia linkkejä, mikä tarkoittaa, että täyden arkistokopion sijaan luodaan sisäinen linkki, joka osoittaa tiettyyn puuhun/versioon. Tästä syystä haaroja ja merkittyjä versioita voidaan luoda hyvin nopeasti ja ne kuluttavat tuskin ollenkaan ylimääräistä tilaa arkistossa.

Haaran tai merkityn version luonti

Jos olet tuonut projektisi arkistoon käyttäen suositeltua hakemistorakennetta, haaran tai merkityn version tekeminen on yksinkertaista:

Kuva 4.54. Haara / merkitty versio -ikkuna

Haara / merkitty versio -ikkuna


Valitse työkopiostasi se kansio, jonka haluat kopioda haaraan tai merkitä ja valitse sitten komento TortoiseSVNLuo haara / merkitty versio....

Uuden haaran oletusarvoinen kohde on sama kuin se, mistä työkopio on noudettu. Joudut siis muokkaamaan kohdepaikantimen haluamaksesi. Niinpä alkuperäinen paikannin

    http://svn.collab.net/repos/ProjectName/trunk

muuttuisi esim. muotoon

    http://svn.collab.net/repos/ProjectName/tags/Release_1.10

Jos et muista edellisellä kerralla käyttämääsi nimeämistapaa, napsauta oikealla olevaa "..."-näppäintä, joka avaa arkistoselaimen, jolla voit tutkia arkiston nykyistä rakennetta.

välihakemistot

Kun määrität kohdepaikantimen, kaikkiensen välihakemistojen on oltava olemassa, muuten toiminto päättyy virheeseen. Yllä olevassa esimerkissä paikantimen http://svn.collab.net/repos/ProjectName/tags/ on oltava olemassa, jotta nimetty versio Release_1.10 voidaan luoda.

Tarvittaessa voit luoda puuttuvat välihakemistot automaattisesti ikkunan alaosassa olevan valinnan Luo välihakemistot avulla.

Huomaa, että valinta on oletusarvoisesti pois päältä kirjoitusvirheiden välttämiseksi. Jos esimerkiksi kirjoitat kohdepaikantimen muodossa http://svn.collab.net/repos/ProjectName/Tags/Release_1.10 muodon http://svn.collab.net/repos/ProjectName/tags/Release_1.10 sijaan, saat virheilmoituksen, kun valinta on pois päältä. Jos valinta kuitenkin on päällä, kansio Tags luodaan automaattisesti ja lopputuloksena on kaksi kansiota, Tags ja tags.

Nyt on valittava, mistä kopio tehdään. Subversion tarjoaa kolme vaihtoehtoa:

Uusin arkistoversio (HEAD)

Uusi haara kopioidaan suoraan arkiston HEAD-versiosta. Työkopiostasi ei tarvitse siirtää tietoa, ja toiminto on hyvin nopea.

Määritelty arkistoversio

Uusi haara kopioidaan suoraan arkistossa, mutta voit valita vanhemman version. Tästä on hyötyä, jos unohdit merkitä version, joka julkaistiin viime viikolla. Jos et muista versionumeroa, napsauta oikealla olevaa "..."-näppäintä, ja valitse versionumero lokista. Nytkään tietoa ei siirry työkopiosta, ja toiminto on nopea.

Työkopio

Uusi haara on kaksoiskappale työkopiostasi. Jos olet päivittänyt työkopiosi tiedostoja vanhempaan versioon tai tehnyt paikallisia muutoksia, ne siirtyvät kopioon. Tällainen monimutkainen merkitty versio vaatii tiedonsiirtoa työkopion ja arkiston välillä, ja on siksi hitain vaihtoehto.

Jos haluat työkopiosi vaihtuvan osoittamaan uuteen haaraan automaattisesti, ruksaa valinta Vaihda työkopio uuteen haaraan / merkittyyn versioon. Mutta ennen kuin teet sen, varmista, ettei työkopiossasi ole paikallisia muutoksia. Jos niitä kuitenkin on, ne yhdistetään haaran työkopioon vaihdon yhteydessä.

Jos työkopiossasi on svn:externals-määreellä liitettyjä projekteja, ne luetellaan haaraudu/luo merkitty versio -ikkunan alaosassa. Kullekin ulkoiselle viitteelle näytetään kohdepolku ja lähdepaikannin.

Jos haluat varmistaa, että uusi merkitty versio on aina yksikäsitteinen, tarkista, että sen sisältämien ulkoisten viittausten versiot ovat kiinnitettyjä. Jos ulkoinen viite osoittaa HEAD-versioon, se voi muuttua tulevaisuudessa, minkä seurauksena merkityn version hakeminen palauttaa muuttuneen HEAD-version, eikä projekti esimerksi käänny enää. Tästä syystä viitteet kannattaa aina kiinnittää versioon merkintää luotaessa.

Ulkoiset viitteet kiinnitetään automaattisesti joko nykyiseen HEAD-versioon tai työkopion BASE-versioon riippuen haaran/merkityn version alkuperästä:

Taulu 4.1. Kiinnitetty versio

KopiolähdeKiinnitetty versio
Uusin arkistoversio (HEAD)ulkoisen viitteen arkiston HEAD-versio
Tietty arkiston versioulkoisen viitteen arkiston HEAD-versio
Työkopioulkoisen viitteen työkopion BASE-versio


Ulkoisten viitteiden sisältämät ulkoiset viitteet

Mikäli ulkoisena viitteenä sisällytetty projekti itse sisältää ulkoisia viitteitä, niitä ei merkitä! Vain välittöminä lapsia olevat ulkoiset viitteet voidaan merkitä.

Napsauta OK toimittaaksesi uuden kopion arkistoon. Älä unohda kirjoittaa lokiviestiä. Huomaa, että kopio luodaan arkistossa.

Huomaa, että mikäli et pyytänyt työkopion vaihtamista osoittamaan uuteen haaraan, niin haaran tai merkityn version luonti ei vaikuta työkopioosi. Vaikka loisit haaran muuttuneesta työkopiostasi, voi työkopiosi luonnin jälkeen yhä olla muuttunut suhteessa päähaaraan, koska muutokset toimitetaan uuteen haaraan, ei päähaaraan (jonne haara osoittaa).

Muita tapoja haaran tai merkityn version luontiin

Voit myös luoda haaran tai merkityn version ilman työkopiota. Tämä tapahtuu arkistoselaimessa, missä voit raahata kansioita uuteen paikkaan. Sinun on pidettävä Ctrl-näppäin painettuna raahattaessa, jotta kansio kopioidaan - muussa tapauksessa se siirretään.

Voit myös raahata kansioita hiiren oikealla näppäimellä. Kun vapautat hiiren painikkeen, voit valita kontekstivalikosta, haluatko siirtää vai kopioida kansion. Haaran tai merkityn version luomiseksi kansio on tietenkin kopioitava, ei siirrettävä.

Vielä yksi tapa haaran luomiseen on käyttää loki-ikkunaa. Voit näyttää lokin esimerkiksi päähaaralle, valita version (joko HEAD-version ylhäältä tai jonkin aiemman version) ja napsauttaa hiiren oikeaa näppäintä sen kohdalla. Esiin aukeavasta kontekstivalikosta löytyy komento Luo versiosta haara / merkitty versio...

Hakeako työkopio vai vaihtaa...

...siinä kysymys (ei oikeasti!). Siinä missä työkopion haku noutaa kaiken halutusta arkiston haarasta työkopioosi, komento TortoiseSVNVaihda... noutaa työkopioosi vain muuttuneet tiedot. Tämä on hyväksi verkon kuormitukselle ja siten myös hermoillesi :-).

On useita tapoja ottaa käyttöön juuri luomasi haara tai merkitty versio. Voit:

  • Antaa komennon TortoiseSVNHae työkopio luodaksesi tuoreen työkopion tyhjään kansioon. Voit tehdä työkopion mielivaltaiseen paikkaan paikallisella levylläsi ja luoda arkistostasi niin monta työkopiota kuin haluat.

  • Vaihtaa nykyisen työkopiosi osoittamaan juuri luotuun kopioon arkistossa. Valitse taaskin projektisi juurihakemisto ja sen kontekstivalikosta komento TortoiseSVNVaihda...

    Syötä aukeavaan ikkunaan juuri luomasi haaran paikannin. Valitse Uusin versio ja napsauta OK. Työkopiosi vaihdetaan osoittamaan uuteen haaraan / merkittyyn versioon.

    Vaihtaminen toimii samalla periaatteella kuin Päivitä - se ei koskaan hävitä tekemiäsi paikallisia muutoksia. Kaikki työkopioosi tehdyt muutokset, joita ei ole toimitettu arkistoon, yhdistetään vaihtamisen yhteydessä. Jos et halua tätä, sinun on joko toimitettava muutokset arkistoon ennen vaihtamista, tai palautettava työkopiosi johonkin arkistossa olevaan versioon (tyypillisesti HEAD).

  • Jos haluat työskennellä sekä päähaaran että kehityshaaran kanssa, mutta et halua suorittaa mahdollisesti hidasta uuden työkopion hakua, voit tehdä päähaaran työkopiohakemistosta kopion Windowsin Resurssienhallinnan avulla ja vaihtaa sen osoittamaan kehityshaaraan komennolla TortoiseSVNVaihda....

Kuva 4.55. Vaihtoikkuna

Vaihtoikkuna


Vaikka Subversion ei itse tee eroa merkittyjen versioiden ja haarojen välillä (ne ovat molemmat polkukopiota), niiden käyttötapa on tavallisesti erilainen.

  • Merkittyjä versioita käytetään tavallisesti luomaan muuttumaton otos projektista tietyssä vaiheessa. Niitä ei yleensä sellaisinaan käytetä jatkokehitykseen - haarat ovat sitä varten; siksi suosittelimme /trunk /branches /tags -arkistorakennetta alun perin. Merkityn version muuttaminen ei ole hyvä ajatus, mutta koska paikalliset tiedostot eivät ole kirjoitussuojattuja, mikään ei estä sinua tekemästä tätä vahingossa. Jos kuitenkin koetat toimittaa muutoksia arkistoon polulle, joka sisältää osan /tags/, TortoiseSVN varoittaa tästä.

  • Voi olla, että joudut tekemään jatkomuutoksia versioon, jonka olet jo merkinnyt. Oikea tepa tehdä tämä on ensin luoda merkistä uusi haara ja tehdä muutokset sinne. Kun työ on tehty, luo haarasta uusi merkki, esim. Version_1.0.1.

  • Jos muutat haarasta tehtyä työkopiota ja toimitat muutoksesi arkistoon, ne tallettuvat uuteen haaraan, eivät päähaaraan. Vain muutokset talletetaan. Loppuosa säilyy halpana kopiona.