Peatükk 1. Sissejuhatus

Kui kaks või enam inimest töötavad ühe ja sama faili kallal ning saadavad seda edasi-tagasi, muutub tasapisi keeruliseks näha, milliseid muutusi on faili uues versioonis tehtud. Üks võimalus on avada kõrvuti uus variant ja originaal, kuid see nõuab aega ja vaeva ning võib kergesti tuua kaasa vigu. Siinkohal tulebki kasuks rakendus, mis on spetsiaalselt mõeldud erinevuste näitamiseks (nende kohta tarvitatakse sageli inglise keelest tulenevat lühendit diff).

Nagu oodata, on sellisele programmile parim nimi "diff". Ja nii ongi: programm diff on paigaldatud enamasti kõigis Linux® distributsioonides ja selle ülesanne ongi erinevuste näitamine. Arendajad kasutavad diff'i sageli käsureal, et uurida lähtekoodi versioonide erinevusi. Kuid diff'i kasutamine ei ole kaugeltki piiratud lähtekoodiga - selle abil võib uurida väga paljusid tekstifaile.

Diff'i kasutamine käsureal on samas tülikas, juba selle käskude süntaksi õppimine ja väljundi tõlgendamine võib kogenematumaid kasutajaid täiesti segadusse ajada. Siin tulebki mängu Kompare. Programmi diff graafilise kasutajaliidesega saab näidata lähte- ja sihtfaili teineteise kõrval, kusjuures erinevused on automaatselt esile tõstetud. Samas saab kohe ühe faili erinevusi rakendada teisele failile igati kontrollitud viisil. Sugugi kõiki erinevusi pole vaja rakendada, nii mõnedki erinevused võivadki jääda 'rakendamata'. Kui kõik vajalikud muudatused on rakendatud, saab faili salvestada ning rakendus, milles see loodi, näitab seda taas nagu iga teist faili.

Lisaks lähte- ja sihtfaili erinevuste kuvamisele võib Kompare abil luua ja vaadata spetsiaalset faili 'diff'. See koondab kahe faili erinevused ühte faili, mis võimaldab erinevusi ühekorraga näha ja vajaduse korral neid faili uuele versioonile rakendada. Võtame taas näite, kus kaks inimest redigeerivad üht dokumenti. Esimene soovib teha muudatusi ja saata teisele ainult tehtud muudatused. Tavaolukorras saadaks esimene isik teisele kogu muudetud dokumendi, kes peab siis seda eelmise variandiga külg külje kõrval võrdlema. Kompare abil võib aga esimene isik teha kõigepealt muudetavast failist kohaliku koopia, siis võtta ette kõik vajalikud muudatused ning võrrelda originaaili ja muudetud dokumenti. Kompare võimaldab teda diff-faili, mis sisaldab ainult tehtud muutusi. Nüüd võib terve faili asemel teisele isikule saata ainult muutusi sisaldava faili.

Kompare abil saab teine isik uurida diff-faili, võrreldes seda dokumendi kohaliku koopiaga ning rakendada sellele esimese isiku tehtud muudatused. Nii võib asi kulgeda edaspidigi: mõlemad teevad oma muudatusi, loovad diff-faili, saadavad selle teisele ning rakendavad tehtud muudatused. Seda nimetatakse enamasti "paikamiseks" - mõiste on kasutusele võetud programmi "patch" eeskujul, mille nimi tõlkes tähendabki paika ning mis on veel üks käsureatööriist spetsiaalselt diff-failide rakendamiseks.

Mõnikord võib juhtuda, et inimesed muudavad faili ühel ja samal ajal. Sellisel juhul ei saa välistada sedagi, et nad teevad muudatusi täpselt ühes ja samas reas. See võib tekitada probleeme, sest saadud diff-faile rakendades võidakse sel moel üksteise töö üle kirjutada. Õnneks on programmide diff ja patch arendajad sellise võimalusega arvestaud ning tööriistad ei luba selliseid muudatusi rakendada ilma käsitsi sekkumiseta. Kui tekib selline olukord ehk "konflikt", näitab Kompare konflikte, et saksid need käsitsi lahendada, otsustades, millised muudatused millisele failile rakendada.

Kompare on suureks abiks ka failimuutuste võrdlemisel kataloogi tasemel. Kataloogide võrdlemisel uurib Kompare rekursiivselt läbi kõik alamkataloogid ja nende failid, et tuvastada erinevused. Sel juhul avatakse kõik erinevustega failid automaatselt ning Kompare pakub võimaluse väga hõlpsalt kõigi failide vahel liikuda.