Pregledovanje razlik

Ena izmed najbolj pogostih zahtev v razvoju projekta je videti spremembe. Mogoče želite videti razlike med dvema revizijama iste datoteke ali razlike med dvema različnima datotekama. TortoiseSVN vsebuje orodje TortoiseMerge za pregledovanje razlik besedilnih datotek. Za pregledovanje razlik grafičnih datotek TortoiseSVN ponuja TortoiseIDiff. Seveda pa lahko uporabite tudi programe po lastni izbiri.

Spremembe v datoteki

Krajevne spremembe

Če želite videti spremembe, ki ste jih naredili vi, uporabite kontekstni meni v Raziskovalcu in izberite TortoiseSVNRazlikuj.

Razlike v primerjavi z drugo vejo/oznako

Če želite videti, kaj se je spremenilo na glavni veji (če delate na stranski veji) ali na določeni veji (če delate na glavni veji), lahko uporabite kontekstni meni Raziskovalca. Med desnim klikom na datoteko držite pritisnjeno tipko Shift. Potem izberite TortoiseSVNRazlikuj z URL. V okno vnesite naslov URL skladišča, s katerim želite primerjati krajevno datoteko.

Lahko uporabite tudi brskalnik po skladišču in izberete dve drevesi, ki ju želite primerjati, mogoče dve oznaki ali vejo/oznako in glavno vejo. Kontekstni meni vam omogoča primerjanje z ukazom Primerjaj reviziji. Več o tem razloži “Primerjanje map”.

Razlike v primerjavi s prejšnjo revizijo

Če želite videti razlike med določeno revizijo in delovno kopijo, uporabite Dnevnik, izberite revizijo, ki vas zanima, in iz kontekstnega menija izberite Primerjaj z delovno kopijo.

Če želite videti razliko med zadnjo objavljeno revizijo in svojo delovno kopijo, ki ni spremenjena, desno kliknite na datoteko. Nato izberite TortoiseSVNRazlikuj s prejšno verzijo. Izvedla se bo primerjava med revizijo pred zadnjo objavo (ki je zabeležena v vaši delovni kopiji) in delovno osnovo (BASE). Vidite zadnjo spremembo, narejeno na datoteki, ki je ustvarila vašo delovno kopijo. Spremembe, novejše kot je vaša delovna kopija, niso prikazane.

Razlike med dvema prejšnjima razlikama

Če želite videti razlike med dvema že objavljenima revizijama, uporabite Dnevnik in izberite reviziji, ki ju želite primerjati (uporabite tipko Ctrl). Potem iz kontekstnega menija izberite Primerjaj reviziji.

Če to storite v Dnevniku za mapo, potem pogovorno okno Primerjaj reviziji prikaže seznam spremenjenih datotek v mapi. Več o tem pove “Primerjanje map”.

Vse spremembe, narejeni pri objavi

Če želite videti spremembe na vseh datotekah v določeni reviziji v enem pogledu, lahko izberete obliko poenotena razlika (oblika popravkov GNU). Ta prikaže le razlike skupaj z nekaj bližnjimi vrsticami. Ta oblika je težje berljiva kot vizuelna, vendar lahko vidite vse spremembe skupaj. Iz Dnevnika izberite revizijo in iz kontekstnega menija zaženite ukaz Prikaži razlike kot poenotene razlike.

Razlika med datotekami

Če želite videti razlike med dvema različnima datotekama, lahko to storite neposredno iz Razskovalca, tako da izberete obe datoteki (z uporabo gumba Ctrl). Potem iz kontekstnega menija Raziskovalca izberite TortoiseSVNRazlikuj.

If the files to compare are not located in the same folder, use the command TortoiseSVNDiff later to mark the first file for diffing, then browse to the second file and use TortoiseSVNDiff with "path/of/marked/file". To remove the marked file, use the command TortoiseSVNDiff later again, but hold down the Ctrl-modifier while clicking on it.

Razlika med datoteko/mapo v delovni kopiji in na naslovu URL

Če želite videti razlike med datoteko v delovni kopiji in datoteko v skladišču Subversion, lahko to storite neposredno iz Raziskovalca. Izberite datoteko, pritisnite tipko Shift in desno kliknite, da se pojavi kontekstni meni. Izberite TortoiseSVNRazlikuj z URL. Enako lahko storite na delovni kopiji. TortoiseMerge prikaže razlike enako kot pri prikazu datoteke popravkov - seznam spremenjenih datotek, ki jih lahko pregledujete eno za drugo.

Razlike z informacijami o krivdi

Če želite poleg razlik videti tudi avtorja, številko revizije in datum sprememb, lahko rezultat razlikovanja in okrivljenja združite. Več o tem si lahko preberete v “Okrivi spremembe”.

Razlika med mapama

Orodja, ki jih dobite zraven programa TortoiseSVN, ne omogočajo pregledovanja razlik med strukturami map. Če imate zunanje orodje, ki to omogoča, ga lahko uporabite. “Zunanja orodja za razlikovanje/spajanje” pove nekaj o orodjih, ki jih uporabljamo.

Če ste nastavili zunanje orodje za razlikovanje, lahko uporabite Shift ob izbiri ukaza Razlikuj in tako poženete zunanje orodje. O nastavljanju zunanjih orodij lahko več preberete v “Nastaviteve zunanjih programov”.

Nastavitev zaključkov vrstic in presledkov

Med delom na projektu včasih zamenjate zaključke vrstic - namesto CRLF uporabite LF. Mogoče pa spremenite zamikanje v nekem delu datoteke. S tem žal povzročite, da je veliko vrstic označenih kot spremenjenih, čeprav se vsebina vrstic dejansko ni spremenila. Naslednje možnosti vam omogočajo obvladovanje takšnih sprememb pri primerjanju ali nameščanju popravkov. Nastavitve so na voljo v pogovornih oknih Spoji in Okrivi, prav tako pa tudi v nastavitvah programa TortoiseMerge.

Možnost Prezri zaključke vrstic izloči vse spremembe, ki so posledica sprememb zgolj zaradi različnih zaključkov vrstic.

Z možnostjo Primerjaj presledke povzročite, da so vse vrstice, ki vsebuje spremembe presledkov, prikazane kot dodane/odstranjene.

Ignore whitespace changes excludes changes which are due solely to a change in the amount or type of whitespace, e.g. changing the indentation or changing tabs to spaces. Adding whitespace where there was none before, or removing a whitespace completely is still shown as a change.

Možnost Prezri vse presledke izloči vse spremembe, ki so posledica spremembe presledkov.

Seveda so kot spremenjene prikazane vse vrstice s spremenjeno vsebino.

Primerjanje map

Slika 4.29. Okno za primerjanje revizij

Okno za primerjanje revizij


Ko v brskalniku po skladišču izberete dve drevesi ali ko izberete dve reviziji mape v dnevniku, lahko uporabite Kontekstni meniPrimerjaj reviziji.

To pogovorno okno prikaže seznam vseh datotek, ki ste jih spremenili, in omogoča posamično primerjavo ali okrivljanje s pomočjo kontekstnega menija.

You can export a change tree, which is useful if you need to send someone else your project tree structure, but containing only the files which have changed. This operation works on the selected files only, so you need to select the files of interest - usually that means all of them - and then Context menuExport selection to.... You will be prompted for a location to save the change tree.

You can also export the list of changed files to a text file using Context menuSave list of selected files to....

If you want to export the list of files and the actions (modified, added, deleted) as well, you can do that using Context menuCopy selection to clipboard.

Gumb na vrhu omogoča spremembo smeri primerjave. Lahko prikažete spremembe iz A v B, ali, če vam je lažje, iz B v A.

Gumbi, ki vsebujejo številke revizij, se uporabljajo za spreminjanje območja revizij. Ko območje spremenite, se seznam elementov, ki se razlikujejo med revizijama, samodejno posodobi.

Če je seznam datotek zelo dolg, lahko uporabite polje za iskanje in tako prikažete le datoteke, ki vsebujejo iskane znake. Uporablja se preprosto iskanje, zato za izpis vseh datotek izvorne kode v jeziku C vpišite .c in ne *.c.

Razlikovanje slik z uporabo programa TortoiseIDiff

Obstaja veliko orodij za razlikovanje besedilnih datotek, vključno z našim lastnim orodjem TortoiseMerge. Pogosto pa želimo videti tudi, kako so se spreminjale slike. Zato smo ustvarili orodje TortoiseIDiff.

Slika 4.30. Pregledovalnik razlik med slikami

Pregledovalnik razlik med slikami


Uporaba ukaza TortoiseSVNRazlikuj na datoteki kateregakoli običajnega slikovnega formata zažene program TortoiseIDiff, ki prikaže razlike med slikama. Po privzetih nastavitvah se sliki prikažeta ena ob drugi, v meniju Pogled pa lahko izberete tudi način prikaza ena slika pod drugo ali celo ena slika čez drugo.

Seveda lahko sliko povečate in pomanjšate ter jo premikate. Premikate lahko tudi s potegom z levim miškinim gumbom. Če izberete možnost Poveži slike, so kontrole za premikanje (drsni trak, kolešček na miški) povezane.

Okno Informacije o sliki prikaže podrobnosti o slikovni datoteki, n. pr. velikost v slikovnih točkah, resolucijo in barvno globino. Če vam je okno v napoto, lahko uporabite PogledInformacije o sliki. S tem okno skrijete. Iste informacije se prikažejo v namigu, če z miško mirujete v naslovni vrstici.

Ko se sliki prekrivata, lahko relativno intenzivnost slik (alpha blend) nastavljate z drsnikom na levi strani. Če kliknete kjerkoli na drsniku, boste neposredno nastavili vrednost, lahko pa drsnik potegnete in tako nastavite vrednost interaktivno. Za spreminjanje vrednosti lahko uporabite tudi Ctrl-Shift-Zasuk miškinega koleščka.

The button above the slider toggles between 0% and 100% blends, and if you double click the button, the blend toggles automatically every second until you click the button again. This can be useful when looking for multiple small changes.

Včasih želite namesto združene (prekrite) slike raje videti razlike, n. p.r če imate dve reviziji sheme tiskanega vezja in želite izvedeti, katere linije so se spremenile. Če izklopite spajanje (alpha blend) slik, se razlike prikažejo kot ekskluzivni ALI barvnih vrednosti točk. Nespremenjena območja bodo bela, spremembe pa bodo obarvane.

Diffing Office Documents

When you want to diff non-text documents you normally have to use the software used to create the document as it understands the file format. For the commonly used Microsoft Office and Open Office suites there is indeed some support for viewing differences and TortoiseSVN includes scripts to invoke these with the right settings when you diff files with the well-known file extensions. You can check which file extensions are supported and add your own by going to TortoiseSVNSettings and clicking Advanced in the External Programs section.

Problems with Office 2010

If you installed the Click-to-Run version of Office 2010 and you try to diff documents you may get an error message from Windows Script Host something like this: ActiveX component can't create object: word.Application. It seems you have to use the MSI-based version of Office to get the diff functionality.

Zunanja orodja za razlikovanje/spajanje

Če orodja, ki jih ponujamo v paketu, ne zadostujejo vašim potrebam, lahko poskusite številne odprtokodne ali komercialne programe. Vsakdo ima svoje priljubljeno orodje in ta seznam vsekakor ni popoln, vseeno pa poda nekaj imen aplikacij, ki jih lahko uporabite:

WinMerge

WinMerge is a great open-source diff tool which can also handle directories.

Perforce Merge

Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce.

KDiff3

KDiff3 je brezplačno orodje za razlikovanje, ki zna delati z mapami. Dobite ga tukaj.

SourceGear DiffMerge

SourceGear Vault is a commercial RCS, but you can download the diff/merge tool for free. Get more information from SourceGear.

ExamDiff

ExamDiff Standard je brezplačen progam. Zna delati z datotekami, ne pa tudi z mapami. ExamDiff Pro je preizkusni program (shareware) in ima v primerjavi z brezplačno različico veliko dodatkov, vključno z možnostjo razlikovanja in urejanja map. Od verzije 3.2 naprej znata obe različici delati z datotekami tipa unicode. Na voljo sta na strani podjetja PrestoSoft.

Beyond Compare

Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software.

Araxis Merge

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

Preberite “Nastaviteve zunanjih programov”, če želite izvedeti več o uporabi teh orodij.