<othercredit role="translator"><firstname>Marek</firstname><surname>Laane</surname><affiliation><address><email>bald@starman.ee</email></address></affiliation><contrib>Tõlge eesti keelde</contrib></othercredit>
<para>&kompare; graafiline rakendus, mis võimaldab vaadata lähtefailide erinevusi ja neid ühendada. &kompare;t võib kasutada nii failide kui ka kataloogide erinevuste võrdlemiseks. &kompare; toetab väga mitmesuguseid diff-failide vorminguid ning pakub arvukalt võimalusi kuvatava teabe kohandamiseks.</para>
<para>Käesolev käsiraamat kirjeldab &kompare; versiooni &version;.</para>
<para>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).</para>
<para>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.</para>
<para>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.</para>
<para>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.</para>
<para>&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.</para>
<para>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.</para>
<para>&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.</para>
<para>&kompare; saab kiiresti käivitada K-menüü alammenüüst Arendus: <menuchoice><guimenu>Arendus</guimenu><guimenuitem> Kompare</guimenuitem></menuchoice>.</para>
<para>&kompare; esimesel käivitamisel avatakse dialoog, kus saab valida, milliseid faile võrrelda. Samas saab valida ka võrdluse ja välimuse omadusi. Vali failidialoogiga võrreldavad läthe- ja sihtfail. Need võivad olla mis tahes kaks faili, kataloogi või ka &URL; ja fail. Kui lähte- ja sihtfail on valitud, klõpsa <guibutton>Võrdle</guibutton>.</para>
<para>Kui &kompare; on erinevused tuvastanud, kuvatakse peaakent. Kaht faili või URL- ja faili võrreldes võtab see vaid mõne sekundi aega, kuid arvukate alamkataloogide ja failidega katalooge võrreldes võib tükk aega kuluda.</para>
<para>Võrdlemise ja välimuse osas määratavaid valikudi tutvustab lähemalt <xref linkend="configure-preferences"/>.</para>
<para>&kompare; tööriistariba võimaldab kiiresti kasutada kõige levinumaid võrdlemis- ja ühendamistoiminguid. Tööriistariba orientatsiooni, teksti asetust, ikoonide suurust ja seda, milliseid ikoone kuvatakse, saab kohandada tööriistariba kontekstimenüü abil, mis avaneb tööriistaribal hiire parema nupuga klõpsates. Kontekstimenüü abil saab tööriistariba ka täielikult peita. Kui see on peidetud ja sa soovid seda taas näha, vali <menuchoice><guimenu>Seadistused</guimenu><guimenuitem>Tööriistariba näitamine</guimenuitem></menuchoice>.</para>
<para>Lähte- ja sihtkataloogi paneelil kuvatakse katalooge, milles asuvad võrreldavad failid. Kui võrdlusse on kaasatud palju alamkatalooge, kuvatakse kataloogi valimisel esimest selles asuvat dokumenti, mille puhul tuvastati läthe- ja sihtfaili erinevusi.</para>
<para>Lähte- ja sihtfaili paneelil kuvatakse faile, mille puhul tuvastati erinevusi parajasti valitud lähte- või sihtkataloogis. Kui kataloogis on hulga erinevusi sisaldavaid dokumente, lisatakse kõik need nimekirja. Kuvatakse valitud dokumenti.</para>
<title>Lähte- ja sihtfaili ridade muudatused</title>
<para>Lähte- ja sihtfaili ridade muudatuste paneelil kuvatakse lähte- ja sihtfaili vahel tuvastatud erinevuste kokkuvõtet. Kirje valimine paneelil tõstab esile ning valib erinevuse. See on abiks pikkades ja paljude erinevustega dokumentides liikumisel.</para>
<para>Lähte- ja sihtfaili vaade on &kompare; peamine tööala. Selles kuvatakse valitud lähte- ja sihtfaili sisu ning esiletõstmisega erinevusi koos reanumbritega.</para>
<para><guilabel>Tekstivaadet</guilabel> vaikimisi ei kuvata. Selle saab avada menüükäsuga <menuchoice><guimenu>Seadistused</guimenu><guimenuitem>Tekstivaate näitamine</guimenuitem></menuchoice>.</para>
<para>Olekuriba näitab parajasti võrreldavate lähte- ja sihtfailide või -kataloogide kokkuvõtet. Samuti näeb seal aktiivses dokumendis leitud muudatuste ning rakendatud erinevuste arvu. Lisaks näitab olekuriba valitud dokumendikogumis erinevusi sisaldavate dokumentide koguarvu ning hetkel võrreldava dokumendi järjekorranumbrit kogumis. Nii võib näiteks kahe kataloogi võrdlemisel tekkida 1890 erinevusi sisaldavat faili ning aktiivne dokument olla 18. dokument 1890-st.</para>
<para>&kompare; eraldab lähte- ja sihtfailile peaaknas ühepalju ruumi. Vaatealas saab aga kasutada teatud vahendeid, mis aitavad paremini erinevusi uurida:</para>
<listitem><para>Kõige silmatorkavam võimalus on kerimisriba nii vaateala paremas servas kui ka allservas. Kerimisribadega saab kiiresti dokumentides liikuda.</para></listitem>
<listitem><para>Lähte- ja sihtfaili eraldav püstine riba lubab mõlemal poolel väga selgelt näha ridade algust ja lõppu, kuid lisaks sellele saab seda ka liigutada ja sel moel muuta lähte- või sihtfailile vaates antavat ruumi. Selleks vii hiirekursor püstriba peale, klõpsa ja lohista seda vastavalt vajadusele vasakule või paremale. Enesestmõistetavalt tähendab ühe poole suurendamine teise poole vähenemist.</para></listitem>
<listitem><para>Peamist tööala saab peaaknast eraldada, kui klõpsata selle parempoolses ülanurgas asuvale nupule <guibutton>Haagi lahti</guibutton>. See muudab tööala omaette aknaks, mida võib maksimeerida või muul moel ekraanile paigutada.</para></listitem>
<para>Olekuriba näitamist saab sisse ja välja lülitada menüükäsuga <menuchoice><guimenu>Seadistused</guimenu><guimenuitem>Olekuriba peitmine/näitamine</guimenuitem></menuchoice>.</para>
<title>Lähte- ja sihtfaili vaate vahetamine</title>
<para>Mõnikord on tulus kaaluda, milline fail võtta erinevuste vaatlemisel võrdlemise aluseks, näiteks siis, kui faili kaht muudetud versiooni võrreldes leiad, et ühes on muudatusi palju rohkem kui teises. Sel juhul sobib paremini lähtefailiks rohkemate muudatustega fail, sest sel juhul on vaja vähem erinevusi rakendada.</para>
<para>Sel juhul vali menüükäsk <menuchoice><guimenu>Fail</guimenu><guimenuitem>Vaheta lähtefail sihtfailiga</guimenuitem></menuchoice>. See vahetab failid kõigis &kompare; paneelides.</para>
<para>Tükk (inglise keeles 'hunk', mis tuleneb sõnas <quote>c<emphasis>hunk</emphasis></quote>) on ridade kogum, milles lähte- ja sihtfail erinevad; nende hulka võivad kuuluda ka kontekstiread, kui võrdlemisvorminguks on valitud <guilabel>Kontekst</guilabel> (vt. <xref linkend="diff-format"/>).</para></listitem>
<listitem><para>Tegelike erinevuste, mitte tükkide arv. Tükk võib sisaldada rohkem kui üht erinevust, kui kahe või enama muutuse read ja kontekstiread kattuvad.</para></listitem>
<para>Kui võrdlemisel leitakse palju erinevusi, on neid kõige etem uurida erinevusi loogilises järjekorras läbi vaadates, tavaliselt ülalt alla.</para>
<para>Kui võrrelda katalooge, siis võib leida palju erinevustega faile. Nende täieliku nimekirja annavad paneelid <quote>Lähte- ja sihtkataloogid</quote> ning <quote>Lähte- ja sihtfailid</quote>. Kuid &kompare; näitab korraga ainult ühe lähte- ja sihtfaili erinevusi.</para>
<para>Dokumentide vahel saab sellisel juhul lülituda järgmiselt:</para>
<listitem><para>Vali <quote>Lähte- ja sihtkataloogide</quote> paneel, misjärel paneelil <quote>Lähte- ja sihtfailid</quote> näeb erinevustega faile, mille seast vali vajalik.</para></listitem>
<listitem><para>Vali menüükäsk <menuchoice><guimenu>Erinevus</guimenu><guimenuitem>Eelmine fail</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>PageUp</keycap></keycombo>) või <menuchoice><guimenu>Erinevus</guimenu><guimenuitem>Järgmine fail</guimenuitem></menuchoice>(<keycombo action="simul">&Ctrl;<keycap>PageDown</keycap></keycombo>), et näha vastavalt eelmis või järgmist erinevustega faili, mis on ära toodud paneelil <quote>Lähte- ja sihtfailid</quote>.</para>
<para>&kompare; muudab erinevuste rakendamise või eemaldamise äärmiselt lihtsaks - seda saab teha vaid hiireklõpsuga. Rakendamist võib sooritada korduvalt, sest kõik toimingud sooritatakse mälus ja kirjutatakse kettale alles siis, kui fail salvestatakse.</para>
<para>Erinevuse eemaldamiseks klõpsa esiletõstetud erinevusel, mille varem rakendasid, ja vali menüükäsk <menuchoice><guimenu>Erinevus</guimenu><guimenuitem>Eemalda erinevus</guimenuitem></menuchoice> (<keycombo><keycap>Backspace</keycap></keycombo>).</para>
<para>Kui oled kõik failide erinevused läbi vaadanud ja arvad, et neid võiks kõiki rakendada, vali menüükäsk <menuchoice><guimenu>Erinevus</guimenu><guimenuitem>Rakenda kõik</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>A</keycap></keycombo>).</para>
<para>Kui erinevused on rakendatud, oleks mõttekas need salvestada menüükäsuga <menuchoice><guimenu>Fail</guimenu><guimenuitem>Salvesta</guimenuitem></menuchoice> või <menuchoice><guimenu>Fail</guimenu><guimenuitem>Salvesta kõik</guimenuitem></menuchoice>.</para>
<para>Rakendatud erinevused salvestatakse nii lähte- kui ka sihtfaili.</para>
<para>Erinevusfailid (diff-failid) sisaldavad ainult failide erinevusi ning võivad sisaldada ka teatud hulka kontekstiridasid enne ja pärast erinevaid ridu. Muudetud ridade ja selle kontekstiridade kogumit nimetatakse tükiks. Võrdlusfail võib niisiis sisaldada mitut tükki ühest või enamast failist. Kui kahe või enama tüki kontekstiread kattuvad, peetakse neid üheks tükiks. Erinevusfaile saab kasutada järgmisteks ülesanneteks:</para>
<para>Diff-faili on võimalik &kompare;s ka vaadata, kui see avada menüükäsuga<menuchoice><guimenu>Fail</guimenu><guimenuitem>Ava diff...</guimenuitem></menuchoice></para>
<para>Diff-faili kuvamisel näidatakse lähte ja sihtfaili tükke. Pea meeles, et näidatakse ainult tükke, mitte aga muutusteta ridu. Mõnel juhul luuakse diff-fail üldse ilma kontekstiridadeta. Sel juhul on näha ainult muudetud read.</para>
<para>Kui diff-fail sisaldab tükke mitmest failist, näitab &kompare; korraga ainult ühe faili tükke ning sa saad failide vahel liikuda, nagu oleksid nad tegelikud failid, ehkki nende info pärineb kõigest diff-faili sisust.</para>
<para>Diff-faili erinevusi vaadates saab neid rakendada samamoodi, nagu lähte- ja sihtfaili võrdlemisel (vt. <xref linkend="merging-differences"/>).</para>
<para>Diff-faili korral on võimalik võrrelda selle tükke faili või kataloogiga. Selleks vali menüükäsk <menuchoice><guimenu>Fail</guimenu><guimenuitem>Liida URL diffiga</guimenuitem></menuchoice>. Seejärel anna <guilabel>faili/kataloogi</guilabel> ja <guilabel>diffi väljundi</guilabel> asukohad.</para>
<para>Lähtefaili ja diff-faili erinevusi vaadates võib neid rakendada samamoodi, nagu lähte- ja sihtfaili võrdlemisel (vt. <xref linkend="merging-differences"/>).</para>
<para>&kompare; lubab kasutajatel määrata erinevuste vormindust peaaknas ning muuta programmi diff käitumist. Dialoogi <guilabel>Seadistused</guilabel> avamiseks vali <menuchoice><guimenu>Seadistused</guimenu><guisubmenu>&kompare; seadistamine...</guisubmenu></menuchoice></para>
<para>Dialoogi <guilabel>Seadistused</guilabel> kaardil <guimenu>Vaade</guimenu>on kaks alamkaarti: <guilabel>Välimus</guilabel> ja <guilabel>Fondid</guilabel>.</para>
<para>Kaart <guilabel>Välimus</guilabel> võimaldab määrata <guilabel>värve</guilabel>, mida kasutatakse erinevuste tähistamisel peaaknas, <guilabel>hiireratta</guilabel> käitumist kerimisel ning seda, kuidas muuta <guilabel>tabeldusmärgid tühikuteks</guilabel>.</para>
<para>Dialoogi <guilabel>Seadistused</guilabel> kaardil <guimenu>Diff</guimenu> on järgmised alamkaardid: <guilabel>Diff</guilabel>, <guilabel>Vorming</guilabel>, <guilabel>Valikud</guilabel> ja <guilabel>Väljajätmine</guilabel>. Nende abil saab seadistada programmi diff käitumist.</para>
<para>Programm diff võib anda käske, mis annavad tekstiredaktorile ed korralduse muuta üks fail teiseks. Ajalooliselt oli see ainuke väljundrežiim, mis sobis ühe faili automaatseks muutmiseks teiseks. Programmi <application>patch</application> loomise järel kasutatakse seda haruharva.</para>
<para>RCS väljundvorming on mõeldud spetsiaalselt vertsioonikontrollisüsteemile (<acronym>RCS</acronym>). Nagu Edi vormingut, kasutatakse ka seda pärast programmi <application>patch</application> ilmumist haruharva.</para>
<para>Unifitseeritud väljundvorming on kontekstivormingu erim. Seda peetakse mõnevõrra paremaks, sest väljund on üleliigsete kontekstiridade väljajätmise tõttu märksa kompaktsem.</para>
<para>Kõrvuti väljundvormingu korral esittakse failid kahes veerus. Seda valikut saab kasutada ainult dialoogis <guilabel>Diffi valikud</guilabel> (vt. <xref linkend="creating-a-diff"/>).</para>
<listitem><para>Märkimisel muudetakse diffi väljundis tabeldusmärgid tühikuteks, mille arv on määratud dialoogi <guilabel>Seadistused</guilabel> kaardil <guimenu>Vaade</guimenu> valikuga <guilabel>Tabeldusmärgid tühikuteks</guilabel>.</para>
<listitem><para>Erinevates redaktorites võib tühimärkide arv enne ja pärast ridu ning nende vahel olla erinev. Märkimisel selliseid erinevusi eiratakse.</para></listitem>