Vertailu

Yksi tavallisimmista vaatimuksista projektityössä on kyetä näkemään, mikä on muuttunut. Saattaa olla tarpeen verrata saman tiedoston kahta eri versiota tai kahta eri tiedostoa. TortoiseSVN:n mukana tulee työkalu nimeltä TortoiseMerge, jonka avulla voi vertailla tekstitiedostojen välisiä eroja. Kuvatiedostojen vertailuun TortoiseSVN:n mukana tulee puolestaan työkalu nimeltä TortoiseIDiff. Voit tietysti myös halutessasi käyttää muita ohjelmia.

Tiedostojen erot

Paikalliset muutokset

Jos haluat nähdä omat työkopioosi tekemäsi muutokset, valitse Resurssienhallinnan kontekstivalikosta komento TortoiseSVNVertaa.

Ero toiseen haaraan / merkittyyn versioon

Jos haluat nähdä, mitä muutoksia päähaarassa (olettaen, että työskentelet haarassa) tai jossain tietyssä haarassa (olettaen, että työskentelet päähaarassa) on tapahtunut, voit käyttää Resurssienhallinnan kontekstivalikkoa. Pidä Shift-näppäintä pohjassa napsauttaessasi hiiren oikealla näppäimellä tiedostoa. Valitse sitten komento TortoiseSVNVertaa paikantimen kanssa. Esiin aukeaa ikkuna, johon voit syöttää paikantimen, johon haluat verrata paikallista tiedostoa.

Voit myös avata arkistoselaimen ja valita kaksi verrattavaa tiedostopuuta, ehkäpä kaksi merkittyä versiota tai haaran / merkityn version ja päähaaran. Arkistoselaimen kontekstivalikon komento Vertaa paikantimia. Lisätietoja löydät luvusta ”Kansioiden vertailu”.

Erot edeltävään versioon

Jos haluat nähdä erot tietyn version ja työkopiosi välillä, avaa versioloki, valitse haluamasi versio ja anna kontekstivalikosta komento Vertaa työkopioon.

Jos haluat verrata viimeisintä toimitettua versiota työkopioosi (olettaen, että työkopio ei ole muuttunut), anna kontekstivalikon komento TortoiseSVNVertaa edelliseen versioon. Vertailu suoritetaan viimeisintä toimitusaikaa (talletettu työkopioon) edeltävän version ja kantaversion (BASE) välillä. Toisin sanoen näet muutokset, jotka johtivat nykyiseen työkopioon. Komento ei näytä työkopiotasi uudempia muutoksia.

Erot kahden edellisen version välillä

Jos haluat nähdä erot kahden, jo arkistoon toimitetun version välillä, avaa versioloki ja valitse vertailtavat versiot (käyttäen valintaa normaalisti Ctrl-näppäintä). Valitse sitten kontekstivalikon komento Vertaa versioita.

Jos teet tämän kansion versiolokista, näyttöön aukeaa Vertaa versiota-ikkuna, jossa luetellaan kansiossa olevat muuttuneet tiedostot. Lue lisää luvusta ”Kansioiden vertailu”.

Kaikki toimituksessa tehdyt muutokset

Jos haluat nähdä kaikki tietyssä versiossa tehdyt muutokset yhdellä kertaa, voit käyttää Unified diff-komentoa, joka näyttää erot (muutaman kontekstirivin kera) GNU Patch-muodossa. Eroja on vaikeampi tulkita kuin visuaalisessa vertailussa, mutta toisaalta ne ovat kaikki yhdessä. Valitse versiolokista haluttu versio ja anna sen jälkeen kontekstivalikosta komento Näytä erot Unified diff -muodossa."

Erot tiedostojen välillä

Jos haluat vertailla kahta eri tiedostoa, voit tehdä sen suoraan Resurssienhallinnasta valitsemalla molemmat tiedostot (käyttäen Ctrl-näppäintä). Valitse sitten kontekstivalikon komento TortoiseSVNVertaa.

Jos verrattavat tiedostot eivät ole samassa kansiossa, käytä komentoa TortoiseSVNVertaa myöhemmin merkitäksesi ensimmäisen vertailtavan tiedoston. Siirry sen jälkeen toisen tiedoston luo ja käytä komentoa TortoiseSVNVertaa tiedostoon "polku/merkittyyn/tiedostoon". Poistaaksesi merkityn tiedoston anna komento TortoiseSVNVertaa myöhemmin pitämällä samalla näppäin Ctrl painettuna.

Erot työkopion tiedoston/kansion ja paikantimen välillä

Jos haluat verrata työkopiosi tiedostoa tiedostoon jossain Subversion-arkistossa, voit tehdä niin suoraan Resurssienhallinnasta valitsemalla tiedoston ja pitämällä pohjassa Shift-näppäintä samalla kuin avaat kontekstivalikon hiiren oikealla näppäimellä. Anna lopuksi komento TortoiseSVNVertaa paikantimen kanssa. Voit tehdä saman asian työkopion työkopion kansiolle. TortoiseMergenäyttää erot samaan tapaan kuin paikkatiedoston - luettelona muuttuneista tiedostoista, joita voit katsella yksi kerrallaan.

Erot ja niiden tekijät

Jos haluat nähdä erojen lisäksi myös tekijän, version ja muutosten päiväyksen, voit yhdistää vertailun ja tekijöiden selvityksen versiolokissa. Lue yksityiskohdat luvusta ”Vertaa ja selvitä tekijät”.

Erot kansioiden välillä

TortoiseSVN:n mukana tulevat työkalut eivät tue kansiohierarkioiden välisten erojen vertailua. Jos sinulla kuitenkin on työkalu, joka tukee tällaista, voit käyttää sitä sen sijaan. Luvussa ”Erilliset vertailu- ja yhdistämistyökalut” kerromme muutamista käyttämistämme työkaluista.

Jos olet määritellyt ulkoisen vertailuohjelman, voit käyttää vaihtoehtoista työkalua pitämällä Shift -näppäimen pohjassa antaessasi Vertaa-komennon. Lue luvusta ”Ulkoiset ohjelmat”, miten ulkoiset vertailutyökalut määritellään.

Rivinlopetin- ja tyhjämerkkiasetukset

Jossain projektin elinkaaren vaiheessa saattaa tulla tarpeelliseksi muuttaa rivinloppumerkit CRLF-muodosta LF-muotoon. Saatat myös muuttaa jonkun lohkon sisennystä. Valitettavasti molemmat toimenpiteet merkitsevät suuren määrän rivejä muuttuneiksi, vaikka itse sisällön merkitys ei ole muuttunut. Seuraavat asetukset auttavat tällaisissa tilanteissa vertailtaessa ja sovellettaessa paikkatiedostoja. Valinnat löytyvät komentojen Yhdistä ja Selvitä tekijät yhteydestä, samoin kuin TortoiseMerge-työkalun asetuksista.

Älä välitä rivinvaihdoista ohittaa muutokset, jotka johtuvat pelkästään erilaisesta rivinlopetustyylistä.

Vertaa tyhjämerkkejä tulkitsee kaikki muutokset sisennyksessä ja rivin sisäisissä tyhjämerkeissä lisättyinä/poistettuina riveinä.

Ohita muuttuneet tyhjämerkit jättää pois muutokset, jotka johtuvat pelkästään tyhjämerkkien määrän tai tyypin muutoksesta, esim. sisennysmerkkien muuttumisesta tabulointimerkeistä välilyönneiksi. Tyhjämerkkien lisääminen paikkaan, missä niitä ei ennen ollut, tai kaikkien tyhjämerkkien poisto luetaan yhä muutokseksi.

Ohita kaikki tyhjämerkit jättää huomiotta kaikki tyhjämerkeistä johtuvat muutokset.

Kaikki rivit, joiden sisältö on muuttunut, sisältyvät tietenkin aina vertailuun.

Kansioiden vertailu

Kuva 4.29. Versioiden vertailu

Versioiden vertailu


Kun valitset kaksi alipuuta arkistoselaimesta, tai kun valitset jonkin kansion kaksi eri versiota loki-ikkunasta, voit antaa komennon KontekstivalikkoVertaa versioita.

Ikkuna näyttää listan kaikista muuttuneista tiedostoista ja sallii yksittäisten tiedostojen vertaamisen tai muutosten tekijöiden selvittämisen kontekstivalikon kautta.

Voit viedä muutospuun, mistä voi olla hyötyä, jos joudut lähettämään jollekulle projektisi puurakenteen, joka sisältää vain muuttuneet tiedostot. Toiminto koskee vain valittuja tiedostoja, joten joudut valitsemaan haluamasi tiedostot - yleensä kaikki - ja antamaan sitten komennon KontekstivalikkoVie valitut tiedostot.... Sinulta kysytään lopuksi muutospuun talletuspaikka.

Voit myös siirtyä tietylle riville käyttämällä komentoa MuokkaaSiirry riville....

Jos haluat viedä tiedostolistan ja toimenpiteet (muutettu, lisätty, poistettu) samalla kertaa, voit tehdä sen komennolla KontekstivalikkoKopioi valinta leikepöydälle.

Ikkunan yläosassa oleva nuolipainike sallii vertailun suunnan muuttamisen. Voit siis näyttää muutokset, joiden avulla A:sta saadaan B, tai, halutessasi, miten B:stä saadaan A.

Versionumeroilla varustettuja painikkeita voi käyttää asettamaan erilainen versioväli. Aina kun vaihdat väliä, lista vertailtavien versioiden välissä muuttuneista kohteista päivittyy automaattisesti.

Jos tiedostonimilista on hyvin pitkä, voit käyttää etsintäkenttää supistamaan sitä. Huomaa, että haku on yksinkertainen tekstihaku, joten jos haluat rajoittaa listan C-tiedostoihin, syötä .c eikä *.c.

Kuvien vertailu TortoiseIDiff-työkalulla

Tekstitiedostojen vertailuun on saatavilla useita työkaluja, muiden muassa TortoiseMerge, mutta usein on tarpeen nähdä, miten kuvatiedosto on muuttunut. Tätä varten kehitettiin TortoiseIDiff.

Kuva 4.30. Kuvien vertailuohjelma

Kuvien vertailuohjelma


Komento TortoiseSVNVertaa mille tahansa yleiselle kuvaformaatille käynnistää TortoiseIDiff-työkalun, jolla kuvia voi verrata. Oletusarvoisesti kuvat näytetään rinnakkain, mutta Näytä-valikon tai työkalurivin avulla voit vaihtaa ne näkymään pinottuna; voit myös halutessasi näyttää kuvat sekoitettuna päällekkäin.

Käytössä on tietenkin myös zoomaus- ja siirtotyökalut. Voit siirtää kuvaa raahaamalla sitä hiiren vasemmalla napilla. Jos valitset asetuksen Kytke kuvat yhteen , niin siirtokontrollit (vierityspalkit, hiiren rullapyörä) kytkeytyvät molemmissa kuvissa yhteen.

Kuvan tietolaatikko näyttää yksityiskohtia kuvatiedostosta, kuten koko pikseleinä, tarkkuus ja värisyvyys. Jos tietolaatikko on tiellä, komento NäytäKuvan tiedot piilottaa sen. Samat tiedot näytetään työkaluvihjeessä, kun pidät hiirtä hetken kuvaotsikon päällä.

Kun kuvat ovat päällekkäin, niiden suhteellista intensiteettiä (alpha) kontrolloidaan ikkunan vasemmalla puoliskolla olevan liukukytkimen avulla. Voit napsauttaa minne tahansa liukukytkimen päällä tai säätää sitä muuttaaksesi sekoitusta interktiivisesti. Toiminto CTRL+SHIFT-Hiiren vieritysrulla vaihtaa myös sekoitusta.

Liukusäätimen yläpuoinen painike vaihtaa 0% ja 100% sekoituksien välillä, ja jos kaksoisnapsautat painiketta, sekoitus alkaa vaihdella automaattisesti sekunnin välein, kunnes napsautat painiketta uudelleen. Tästä voi olla hyötyä pienten muutosten etsinnässä.

Joskus on hyödyllistä nähdä erot sekoituksen sijaan. Sinulla saattaa olla esim. kaksi piirilevykaavion versiota ja haluat tietää, mitkä osat ovat muuttuneet. Jos otat pois käytöstä sekoitustilan, ero näytetään pikselien väriarvojen XOR-operaationa. Muuttumattomat alueet ovat valkoisia ja muutetut alueet värjättyjä.

Office-dokumenttien vertailu

Kun haluat vertailla muuta kuin tekstiä sisältäviä dokumentteja, on normaalisti käytettävä ohjelmaa, jolla dokumentti luotiin, koska vain se tuntee dokumentin rakenteen. Yleisesti käytetyissä Microsoft Office- ja Open Office -ympäristöissä onkin mukana vertailutuki, ja TortoiseSVN sisältää komentojonoja, joiden avulla ohjelmat käynnistyvät oikeilla asetuksilla, kun vertailet niillä tehtyjä dokumentteja. Voit tarkistaa, mitä tiedostotyyppejä tuetaan ja lisätä omiasi komennolla TortoiseSVNAsetukset ja napsauttamalla Ulkoiset ohjelmat -osion painiketta Lisäasetukset.

Ongelmia Office 2010:n kanssa

Jos olet asentanut Click-to-Run -version Office 2010-ympäristöstä ja koetat vertailla dokumentteja, saatat saada seuraavan Windows Script Host -virheilmoituksen: ActiveX component can't create object: word.Application. Mitä ilmeisimmin Office on asennettava MSI-versiona, jotta vertailu toimisi.

Erilliset vertailu- ja yhdistämistyökalut

Jos TortoiseSVN:n mukana tulevat työkalut eivät tee kaikkia haluamiasi asioita, koeta jotain toista avoimen lähdekoodin- tai kaupallista työkalua. Jokaisella on oma suosikkinsa, eikä seuraava luettelo ole millään muotoa täydellinen, mutta tässä on muutamia harkitsemisen arvoisia työkaluja:

WinMerge

WinMerge on näppärä avoimeen lähdekoodiin perustuva vertailutyökalu, joka osaa myös käsitellä hakemistoja.

Perforce Merge

Perforce on kaupallinen versionhallintajärjestelmä, mutta sen vertailu/yhdistämistyökalua saa käyttää ilmaiseksi. Lisätietoa löytyy Perforce-sivustosta.

KDiff3

KDiff3 on ilmainen vertailutyökalu, joka osaa myös käsitellä hakemistoja. Voit noutaa sen osoitteesta http://kdiff3.sf.net/.

SourceGear DiffMerge

SourceGear Vault on kaupallinen versionhallintaohjelmisto, mutta voit hakea sen diff/merge -työkalun ilmaiseksi. Lisätietoa osoitteessa SourceGear.

ExamDiff

ExamDiff Standard on ilmaisohjelma. Se osaa käsitellä tiedostoja, muttei hakemistoja. ExamDiff Pro on maksullinen julkisohjelma (shareware), joka lisää tähän joukon lisäominaisuuksia (mm. hakemistojen käsittely ja tiedostojen muokkaus). Molemmat ohjelmat tuntevat Unicode-merkistön versiosta 3.2 eteenpäin. Void ladata ne yrityksen sivuilta osoitteesta http://www.prestosoft.com/.

Beyond Compare

Kuten ExamDiff Pro, Beyond Compare on mainio maksullinen tiedostojen vertailuohjelma, joka osaa käsitellä hakemistoeroja ja Unicode-merkistöä. Lataa se osoitteesta Scooter Software.

Araxis Merge

Araxis Merge on hyödyllinen kaupallinen työkalu vertailuun ja tiedostojen/kansioiden yhdistämiseen. Se osaa kolmisuuntaisen vertailun yhdistettäessä ja tuntee synkronointilinkit, joita voi käyttää funktioiden järjestyksen muuttuessa. Lataa ohjelma seuraavasta osoitteesta: Araxis.

Lue kappaleesta ”Ulkoiset ohjelmat” lisätietoa työkalujen ottamisesta käyttöön TortoiseSVN:ssä.