Ulkoiset kohteet

Joskus on hyödyllistä muodostaa työkopio, joka on tehty usealla hakuoperaatiolla. Voit esimerkiksi haluta alihakemistojen tulevan eri paikoista arkistossa tai jopa kokonaan eri arkistoista. Jos haluat, että kaikilla käyttäjillä olevan sama hakemistorakenne käytössä, voit määrittää svn:externals-ominaisuuksia noutamaan määritellyt resurssit tarvittaviin paikkoihin.

Ulkoiset kansiot

Oletetaan, että haet työkopion projkektista /project1 kansioon D:\dev\project1. Valitse kansio D:\dev\project1 ja valitse hiiren oikealla näppäimellä komento Windows-valikkoOminaisuudet. Ominaisuusikkuna aukeaa. Siirry Subversion-välilehteen, jossa voit asettaa ominausuudet. Napsauta Ominaisuudet.... Esiin aukeavassa ikkunassa voit kaksoisnapsauttaa svn:externals-valintaa, jios sellainen on, tai lisätä uuden valitsemalla valikosta Uusi... ja externals.

Varo

Paikantimien erikoismerkit on määriteltävä oikein, jotta ne toimisivat. Esimerkiksi välilyönti on korvattava lausekkeella %20.

Jos haluat sisällyttää paikalliseen polkuun välilyöntejä tai muita erikoismerkkejä, voit joko ympäröidä sen lainausmerkein tai käyttää kenoviivamerkkiä \ erikoismerkkien edellä. Jälkimmäinen tarkoittaa tietysti myös sitä, että polkuerottimena on käytettävä jakoviivamerkkiä /. Huomaa, että tämä toiminnallisuus on käytössä versiosta 1.6 alkaen.

Käytä eksplisiittisiä versionumeroita

Sinun kannattaa harkita versionumeroiden käyttöä kaikissa ulkoisissa viittauksissa edellä kuvatulla tavalla. Näin tekemällä pääset itse päättämään, milloin otat käyttöön uuden ulkoisen komponentin version. Tästä on se hyöty, etteivät ulkoisten komponenttien arkistomuutokset - joihin et ehkä voi vaikuttaa - aiheuta yllätyksiä. Lisäksi versionumeroiden käyttö ulkoisissa viittauksissa auttaa myös silloin, kun haluat palauttaa projektisi vanhan version - tällöin ulkoiset viittaukset palautuvat oikeisiin arvoihin, ja ulkoiset työkopiot päivittyvät tilaan, jossa ne olivat arkistosi aiemmassa versiossa. Ohjelmistoprojekteille tämä voi merkitä eroa onnistuneen tai epäonnistuneen käännöksen välillä.

svn:externals -ominaisuuksien muokkausikkunan avulla on mahdollista valita ulkoiset viitteet ja asettaa ne automaattisesti eksplisiittiseen HEAD-versioon.

Jos ulkoinen projekti on samassa arkistossa, kaikki siihen tehdyt muutokset sisältyvät toimituslistaan toimittaessasi pääprojektin muutoksia arkistoon.

Jos ulkoinen projekti on eri arkistossa, siihen tekemistäsi muutoksista näytetään tai ilmoitetaan toimittaessasi pääprojektin muutoksia arkistoon. Joudut kuitenkin toimittamaan ulkoiset muutokset erikseen.

Jos käytät absoluuttisia paikantimia svn:externals -määrityksissä ja joudut sijoittamaan työkopiosi uudelleen (ts. jos arkistosi paikannin muuttuu), niin ulkoiset viitteet eivät päivity eivätkä siis ehkä enää toimi oikein.

Tällaisten ongelmien välttämiseksi Subversion (ja siis myös TortoiseSVN) tukee versiosta 1.5 alkaen suhteellisia paikantimia ulkoisissa viitteissä. Suhteellisen paikantimen voi antaa neljällä eri tavalla. Seuraavissa esimerkeissä oletetaan, että käytössä on kaksi arkistoa, http://example.com/svn/repos-1 ja http://example.com/svn/repos-2. Paikantimesta http://example.com/svn/repos-1/project/trunk on noudettu työkopio kansioon C:\Working ja ominaisuus svn:externals on asetettu kansiolle trunk.

Suhteellinen isähakemistoon nähden

Nämä paikantimet alkavat aina merkkijonolla ../:

../../widgets/foo  common/foo-widget

Tämä noutaa kansion http://example.com/svn/repos-1/widgets/foo työkopion kansioon C:\Working\common\foo-widget.

Huomaa, että paikannin on suhteellinen siihen kansioon nähden, joka sisältää svn:externals -ominaisuuden, ei työkopion kansioon, johon paikantimen sisältö kirjoitetaan.

Suhteessa arkiston juureen

Nämä paikantimet alkavat aina merkkijonolla ^/:

^/widgets/foo  common/foo-widget

Tämä noutaa kansion http://example.com/svn/repos-1/widgets/foo työkopion kansioon C:\Working\common\foo-widget.

Voit helposti viitata muihin arkistoihin, joilla on sama SVNParentPath (yhteinen hakemisto, jossa on useita arkistoja). Esimerkki:

^/../repos-2/hammers/claw  common/claw-hammer

Tämä noutaa kansion http://example.com/svn/repos-2/hammers/claw työkopion kansioon C:\Working\common\claw-hammer.

Suhteellinen yhteyskäytäntöön nähden

Merkkijonolla // alkavat paikantimet jättävät yhteyskäytännön avoimeksi. Tämä on hyödyllistä, jos samaan palvelimeen on kytkeydyttävä eri yhteyskäytännöillä; esim. intranet-asiakkaat käyttävät http://-yhteyskäytäntöä, kun taas internet-asiakkaat käyttävät svn+ssh://-yhteyskäytäntöä. Esimerkki:

//example.com/svn/repos-1/widgets/foo  common/foo-widget

Tämä noutaa kansion http://example.com/svn/repos-1/widgets/foo tai kansion svn+ssh://example.com/svn/repos-1/widgets/foo työkopion C:\Working yhteyskäytännöstä riippuen.

Suhteellinen palvelimen nimeen nähden

Merkkijonolla / alkavat paikantimet jättävät yhteyskäytännön ja palvelimen nimen avoimiksi. Esimerkki:

/svn/repos-1/widgets/foo  common/foo-widget

Tämä noutaa kansion http://example.com/svn/repos-1/widgets/foo työkopion kansioon C:\Working\common\foo-widget. Jos kuitenkin hat työkopiosi toiselta palvelimelta svn+ssh://another.mirror.net/svn/repos-1/project1/trunk, niin ulkoinen viite noutaa kansion svn+ssh://another.mirror.net/svn/repos-1/widgets/foo.

Voit myös tarvittaessa määrittää ankkuri- ja operatiivisen version paikantimelle. Lue lisää näistä tavoista Subversion-kirjasta.

Tärkeää

Mikäli määrität ulkoisen viitteen kohdehakemiston alikansioksi kuten yllä olevissa esimerkeissä, varmista, että kaikki välillä olevat kansiot on myös versioitu. Edellä siis kansion common tulee olla versioitu!

Joskin ulkoinen viite toimii useimmiten oikein, vaikka kaikki yläkansiot eivat olisi versioituja, jotkut komennot eivät toimi odotetusti. Resurssienhallinnan kuvakepäällykset eivät myöskään näytä oikeata tilaa.

Lisätietoa TortoiseSVN:n ominaisuuksien käsittelystä löytyy luvusta ”Projektiasetukset”.

Eri tavoista viitata yhteisiin aliprojekteihin löytyy tietoa luvusta ”Sisällytä projektiin yhteinen aliprojekti”.

Ulkoiset tiedostot

Versiosta 1.6 alkaen voit lisätä ulkoisia viittauksia yksittäisiin tiedostoihin työkopiossasi samaan tapaan kuin ulkoisten kansioiden yhteydessä. Tähän liittyy kuitenkin muutamia rajoituksia.

  • Polun ulkoiseen tiedostoon tulee sijaita suoraan siinä hakemistossa, jolle svn:externals -ominaisuus asetetaan.

  • Ulkoisen tiedoston paikantimen on viitattava samaan arkistoon, missä se sijaitsee; arkistojen väliset ulkoiset tiedostot eivät ole tuettuja.

Ulkoinen tiedosto käyttäytyy useimmiten normaalin versioidun tiedoston tavoin, mutta niitä ei voi siirtää tai poistaa tavanomaisilla komennoilla vaan muokkaamalla svn:externals-ominaisuutta.

Ulkoisten viittausten luonti raahaamalla ja pudottamalla

Jos sinulla on jo työkopio tiedostoista tai kansioista, jotka haluat lisätä toiseen työkopioon ulkoisena viitteenä, voit yksinkertaisesti raahata ne kohdetyökopioon Resurssienhallinnan avulla.

Oikea-raahaa tiedosto tai kansio työkopiosta siihen työkopioon, johon haluat lisätä sen ulkoisena viitteenä. Vapauttaessasi hiiren näppäimen esiin aukeaa kontekstivalikko SVN Lisää ulkoinen viite tähän. Jos valitset komennon, tarvittava svn:externals -ominaisuus lisätään automaattisesti. Tämän jälkeen riittää toimittaa ominaisuusmuutokset arkistoon ja päivittää työkopio.