# &kdiff3; käsiraamat

Joachim Eibl

     joachim.eibl at gmx.de

Marek Laane

    bald@online.ee

Tõlge eesti keelde
2002-2005 Joachim Eibl
&FDLNotice;
2005-01-30
0.9.87

&kdiff3; on failide ja kataloogide võrdlemise ja ühendamise vahend, mis

- võrdleb ja ühendab kaks või kolm sisendfaili või -kataloogi,

- näitab erinevusi rida realt ja sümbol sümbolilt (!),

- pakub automaatse ühendamise võimalust,

- võimaldab kasutada hõlpsasti ühendamiskonflikte lahendada suutvat redaktorit

- pakub tänu KIO moodulitele võrguläbipaistvust

- võimaldab esile tõsta või peita tühikute või kommentaaride erinevusi

- toetab Unicode'i, UTF-8 ja muid kodeeringuid.

Käesolev käsiraamat kirjeldab KDiff3 versiooni 0.9.87.

KDE kdeextragear kdiff3 diff ühendamine CVS kolmikvõrdlus võrdlemine failid kataloogid versioonide kontroll kolmikühendamine reaerinevused sünkroniseerimine kpart kio võrguläbipaistvus redaktor tühimärgid kommentaarid

## Sissejuhatus

### Veel üks võrdlemisrakendus?

Teatavasti on olemas üsna mitu graafilist võrdlusrakendust. Miks siis veel KDiff3? Siin ma selgitan veidi selle loomise tagamaid.

KDiff3 nägi ilmavalgust sellepärast, et mul oli raskusi ühendamisega. Ühendamine on hädavajalik, kui mingi projekti failide kallal töötab korraga mitu inimest. Ühendamine peab olema mingil määral automatiseeritud, kui arvestada seda, et ühendamisvahend tegeleb nii uute, muudetud failidega (niinimetatud harudega) kui ka algse failiga (niinimetatud baas). Ühendamisvahend valib automaatselt muudatuse, mis mingis harus on tehtud. Kui mitu arendajat on muutnud üht ja sama rida, tuvastab ühendamisvahend konflikti, mis tuleb lahendada käsitsi.

Ühendamine oli sellisel juhul keeruline, sest üks arendaja muutis hulk asju ja lisaks sellele parandas veel paljudes kohtades näiteks taanet. Samal ajal muutis teine arendaja samuti üsna palju samas failis ja nii tekkiski korraga mitu ühendamiskonflikti.

Vahendid, mida ma toona kasutasin, näitasid ainult muudetud ridu, aga mitte seda, mida neis ridades on muudetud. Ning miski ei viidanud ka sellele, et muudetud on ainult taanet. See muutis ühendamise väikest viisi luupainajaks.

Minu jaoks oli see alguspunkt. Esimene versioon oskas näidata erinevusi rea sees ning erinevusi tühimärkides. Hiljem lisandus veel hulk võimalusi, mis ainult suurendasid rakenduse kasulikkust.

Nii on näiteks võimalik teksti kiireks võrdlemiseks kopeerida see lõikepuhvrisse ja asetada siis mis tahes võrdlusaknasse.

Päris suurt pingutust nõudvaks võimaluseks osutus kataloogide võrdlemine ja ühendamine, mille tulemusena sündis peaaegu juba brauseri mõõtu lisandus.

Ma loodan, et KDiff3 rahuldab ka sinu vajadused. Edu sulle!

Joachim Eibl (2003)

### Pildid ja võimalused

See pilt näitab erinevust kahe tekstifaili vahel

(KDiff3 üks varasemaid versioone):

Kolmikühendamine on täielikult toetatud. See on abiks juhul, kui kaks inimest on koodi teineteisest sõltumatult muutnud. Algne fail (baas) võimaldab KDiff3 automaatselt valida korrektsed muudatused. Võrdlusakende all asuv ühendamisredaktor lubab konflikte lahendada ja näitab, milline on sellisel juhul tulemus. Isegi seda tulemust saab kohe edasi redigeerida. See pilt näitab kolme sisendfaili ühendamist:

KDiff3 aitab ka võrrelda ja ühendada terveid katalooge. See pilt näitabki KDiff3 kataloogide ühendamisel:

### Veel võimalusi

#### Võrdlemine rida realt ja märk märgilt

Graafiliselt, värvidega näitab KDiff3 täpselt, milles peituvad erinevused Kui tegeled palju koodi (ümber)kirjutamisega, on see kindlasti abiks.

#### Tühimärkide erinevuste näitamine

Tühikute ja tabeldusmärkide erinevused näidatakse otseselt ära. Kui read erinevad ainult tühimärkide arvu poolest, võib seda üheainsa pilguga näha vasakul asuval kokkuvõttetulbal (mis tähendab, et ei pruugi enam pead murda, kui muudetud on kõigest taanet).

#### Kolmikvõrdlus

Kolme faili analüüs ja nende erinevuste näitamine.

Vasakpoolne, keskmine ja parempoolne aken kannavad vastavalt nimesid A, B ja C ning neid eristab ka värv (sinine, roheline, magenta).

Kui ühes failis on rida sama, teises aga erinev, näitab värv, milline fail on erinev. Punane värv tähendab, et mõlemad ülejäänud failid on erinevustega.

#### Kahe või kolme sisendfaili hõlpus ühendamine

KDiff3 võib ühendada kaks või kolm sisendfaili, sealjuures võimalikult palju juba automaatselt. Tulemust näidatakse redigeeritavas aknas, kus enamiku konflikte saab lahendada üheainsa hiireklõpsuga: vali nupuribalt A, B või C määramaks, millist allikat kasutada. Valida võib ka enam kui ühe allika. Kuna väljundiaken on samal ajal redaktor, siis saab isegi selliseid konflikte, mille puhul tuleb midagi täiendavalt teha, lahendada ilma mingit muud abivahendit kasutamata.

#### Ja veel...

- Kiire liikumine nuppude abil.

- Hiireklõps kokkuvõttetulbal sünkroniseerib kõik aknad ühele positsioonile.

- Valimine ja kopeerimine mis tahes aknast ning asetamine ühendamisaknasse.

- Ülevaatetulp, mis näitab, kus esineb muudatusi ja konflikte.

- Värve saab kohandada just kasutaja maitsele.

- Kohandatav tabeldusmärgi suurus.

- Võimalus lisada tabeldusmärkide asemel tühikud.

- Failide hõlpus avamine dialoogiga või võimalus määrata faile käsureal.

- Stringide otsimine kõigis tekstiakendes (Otsi ehk CTRL+F ja Otsi järgmine ehk F3).

- Iga rea reanumbri näitamine.

- Lõikepuhvri sisu asetamine või teksti lohistamine võrdlemise sisendaknasse.

- Võrguläbipaistvus KIO moodulite vahendusel.

- Võimalus kasutada KDevelop3 erinevuste näitajana.

- Pikkade ridade murdmine.

- Unicode'i, UTF-8 ja muude kodeeringute toetus.

- Paremalt vasakule kirjutatavate keelte toetus.

- ...

## Failide võrdlemise ja ühendamise seletused

### Käsurea võimalused

#### Kahe faili võrdlemine:

    kdiff3 fail1 fail2

#### Kahe faili ühendamine:

    kdiff3 fail1 fail2 -m
       kdiff3 fail1 fail2 -o väljundfail

#### Kolme faili võrdlemine:

    kdiff3 fail1 fail2 fail3

#### Kolme faili ühendamine:

    kdiff3 fail1 fail2 fail3 -m
       kdiff3 fail1 fail2 fail3 -o väljundfail

Pane tähele, et fail1 kujutab endast baasi fail2 ja fail3 jaoks.

#### Erijuhtum: ühenimelised failid

Kui kõigil failidel on sama nimi, aga nad asuvad erinevates kataloogides, võib kirjutamisvaeva vähendada, andes ainult esimese faili nime. Näiteks:

    kdiff3 kataloog1/failinimi kataloog2 kataloog3

#### Kataloogide võrdlemine või ühendamine käsureal:

See käib samamoodi, ainult et tegu on kataloogidega.

    kdiff3 kataloog1 kataloog2
       kdiff3 kataloog1 kataloog2 -o sihtkataloog
       kdiff3 kataloog1 kataloog2 kataloog3
       kdiff3 kataloog1 kataloog2 kataloog3 -o sihtkataloog

Kataloogide võrdlemisest ja ühendamisest saab täpsemalt lugeda siit.

#### Rohkem infot käsurea võtmete kohta annab käsk:

    kdiff3 --help
    Võtmed:
      -m, --merge               Sisendi liitmine.
      -b, --base file           Baasfail. Ühilduvuseks teatud vahenditega.
      -o, --output file         Väljundfail. Eelduseks -m. Nt.: -o newfile.txt
      --out file                Taas väljundfail. (Ühilduvuseks teatud vahenditega.)
      --auto                    GUI puudub, kui kõik konfliktid on automaatselt lahenevad. (Vajalik on -o file)
      --qall                    Konflikte ei lahendata automaatselt. (Ühilduvuseks...)
      --L1 alias1               Sisendfaili 1 (baas) näidatava nime asendus.
      --L2 alias2               Sisendfaili 2 näidatava nime asendus.
      --L3 alias3               Sisendfaili 3 näidatava nime asendus.
      -L, --fname alias         Alternatiivne näidatava nime asendus. Tuleb anda kord iga sisendi kohta.
      -u                        Toimeta. Ühilduvuseks teatud vahenditega.

### Avamisdialoog

Et mitme sisendfaili korral nad lihtsalt peavad olema valitavad, on rakendusel eriline avamisdialoog:

Avamisdialoog võimaldab redigeerida failinimesid käsitsi, valida need failidialoogis ("Fail...") või kasutada hüpikmenüüs olevaid hiljuti avatud faile. Kui avad dialoogi uuesti, on seal kirjas parajasti aktiivsed failinimed. Kolmanda sisendvälja täitmine ei ole kohustuslik. Kui "C" tühjaks jätta, analüüsitakse ainult kahe faili erinevusi.

Nupule "Kataloog..." klõpsates saab valida kataloogi. Kui A jaoks on määratud kataloog, saab alustada kataloogide võrdlemist-ühendamist. Kui A on fail, kuid B, C või väljund kataloogid, kasutab KDiff3 A failinime määratud kataloogides.

Kui märkida "Ühenda", saab kasutada ka välja "Väljund". Siiski ei ole nõutav väljundfaili nime kohe määrata, selle võib edasi lükata ka salvestamise ajale.

Klõps nupule "Seadista..." avab valikute dialoogi, kus saab enne analüüsi midagi muuta, kui pead seda vajalikuks.

### Sisendi asetamine ja lohistamine

Vahel võib tekkida vajadus võrrelda tekstilõke, mis ei kujuta endast omaette faile. KDiff3 võimaldab väga lihtsalt asetada teksti lõikepuhvrist parajasti fookuses olevasse võrdlemise sisendaknasse. Võrdlusanalüüs algab kohe seejärel. Avamisdialoogis ei ole sellisel juhul vajalik määrata faile, vaid selle võib kohe sulgeda klõpsuga nupule "Loobu".

Samuti võib kasutada lohistamist: lohista fail failihalduris või valitud tekst redaktorist ning kukuta see võrdlemise sisendaknasse.

Milleks see hea on? Mõnikord võib fail sisaldada kaht sarnast funktsiooni, kuid kontrollimine, kui sarnased nad ikkagi on, võib olla päris tülikas, kui sa pead näiteks kõigepealt looma kaks faili ja siis nad mõlemad avama. Nüüd aga on võimalik vajalikud osad lihtsalt kopeerida, asetada ja võrdlemine võibki alata.

Märkus: praegu ei ole võimalik midagi KDiff3-st välja lohistada, toetatud on ainult lohistamine võrdlemise sisendaknasse.

Hoiatus: mõned redaktorid tõlgendavad lohistamist muusse rakendusse mitte kopeerimise, vaid lõikamisena. See tähendab, et sa võid kaotada oma esialgsed andmed.

### Info tõlgendamine sisendaknas

Iga tekstiakna ülaservas asub "inforiba". Sisendakende inforibal seisab täht "A", "B" või "C", failinimi ning aknas esimesena näha oleva rea number. (Pane tähele, et akent "C" ei pruugi olemas olla.) Iga inforiba on erinevat värvi. Kui näiteks failinimi on liiga pikk, et ära mahtuda, võib hiire viia riba kohale ning näha täielikku nime ilmuval kohtspikril.

Kolmele sisendaknale on omistatud tähed "A", "B" ja "C". "A" värviks on sinine, "B" roheline ja "C" magenta. Need on vaikeväärtused, mida saab muuta seadistustemenüüst.

Erinevuse avastamisel näitab värv, milline sisendfail erineb. Kui erinevad mõlemad sisendfailid, siis väljendab seda vaikimisi punane värv (seadistuste kohaselt "konflikti värv"). Värviskeem tuleb eriti kasuks kolme sisendfaili korral, mida võib näha järgmises osas (Ühjendamine).

Igast tekstist vasakul asub "kokkuvõttetulp". Kui real on erinevusi, näitab kokkuvõttetulp vastavat värvi. Ainult tühimärkide erinevuse korral on kokkuvõttetulbal näha ruuduline muster. See on abiks programmeerimiskeelte korral, kus tühimärkidel ei ole erilist tähendust, võimaldades ühe hetkega tuvastada, kas on ka mingeid olulisi muudatusi (näiteks C/C++ korral on tühimärkidel mingi roll ainult stringides, kommentaarides, preprotsessoris ja veel mõnel äärmiselt esoteerilisel juhtumil).

Kokkuvõttetulpa ja teksti lahutav püstjoon on katkestatud, kui sisendfailis pole selles kohas ühtki rida. Reamurdmise lubamisel on püstjoon murtud ridade juures punkteeritud.

Paremal on otse kerimisriba kõrval näha "ülevaateriba". See näitab kokkusurutult sisendfaili "A" kokkuvõttetulpa. Nii on kõik erinevused ja konfliktid korraga näha. Kui kasutada ainult kaht sisendakent, on kõik erinevused punased, sest iga erinevus on sellisel juhul ju ka konflikt. Must ristkülik tähistab parajasti aknas näha olevat tekstiosa. Väga pikkade sisendfailide korral, kus sisendi ridade arv on suurem kui ülevaatetulba kõrgus pikslites, mahutatakse ühele ülevaatereale mitu sisendirida. Konflikti näitamist eelistatakse sellisel juhul tavalisele erinevusele ning viimast muutmata olekule, nii ei jää kindlasti nägemata ükski erinevus või konflikt. Ülevaateribale klõpsates näidatakse vastavat kohta tekstis.

### Ühendamine ja ühendamisväljundi redigeerimisaken

Ka ühendamisväljundi redigeerimisaknal (allpool võrdlemise sisendaknaid) on ülaservas inforiba, kus seisab "Väljund:", failinimi ja "[Muudetud]", kui oled midagi muutnud. Tavaliselt leidub seal automaatse ühendamise vahendite pakutav tekst, kuid tihtipeale ka konfliktid.

!!! Salvestamine on võimalik alles siis, kui kõik konfliktid on lahendatud !!! (allesjäänud konfliktide lahendamiseks kasuta nuppe "Liigu eelmisele/järgmisele lahendamata konfliktile")

Kui on ainult kaks sisendfaili, on iga erinevus ühtlasi konflikt, mis tuleb käsitsi lahendada.

Kolme sisendfaili korral käsitletakse esimest baasina, teist ja kolmandat aga potentsiaalseid muudatusi sisaldavate failidena. Kui muudetud on rida ainult sisendis B või C, aga mitte mõlemas, valitakse automaatselt muudetud allikas. Kui aga nii B kui C on (erinevalt) muutnud üht ja sama rida, märgitakse see konfliktina, mis tuleb käsitsi lahendada. Kui B ja C on ühesugused, aga erinevad A-st, valitakse C.

Ka ühendamisväljundi redigeerimisaknal on vasakus servas kokkuvõtteriba. See näitab sisendi tähte, millest rida on valitud, või mitte midagi, kui rida on kõigis kolmes allikas võrdne. Konflikti korral on seal küsimärk "?" ning real endal seisab "<Ühendamise konflikt>, kõik ilusasti puust ja punaseks tehtud. Kuna konfliktide lahendamine rida-realt võib võtta päris palju aega, on read rühmitatud gruppidesse, millel on ühesugused erinevuse ja konflikti omadused. Samas on ainult tühimärkide konfliktid eraldatud muudest konfliktidest, et hõlbustada selliste failide ühendamist, kus taanet on muudetud paljudel ridadel.

Kui klõpsata hiire vasaku nupuga kokkuvõttetulbal mis tahes aknas, siis valitakse selle rea grupp kõigis akendes ning näidatakse antud grupi algust (see võib kaasa tuua automaatse asukohavahetuse akendes, kui grupi algus ei ole parajasti näha). Valitud grupp muutub sellega "aktiivseks grupiks", see tõstetakse esile "praeguse vahemiku tausta värviga" ning tekstist vasakule ilmub must tulbake.

Pane tähele tähtedega "A", "B" ja "C" sisendivalija nuppe menüüriba all. Mõnele neist klõpsates lisatakse selle sisendi read valitud grupi lõppu, kui grupp ei sisaldanud varem seda allikat. Vastasel juhul eemaldatakse selle allika read.

Lisaks saab vahetult redigeerida mis tahes rida. Kokkuvõttetulp näitab tähte "m" iga muudetud rea kohta.

Vahel võib juhtuda, et rida eemaldatakse automaatse liitmisega või redigeerides. Kui gruppi ei ole jäänud enam ühtki rida, ilmub sellele reale tekst <Lähterida puudub>. See on kõigest grupi kohatäitja juhuks, kui muudad meelt ja valid taas mõne allika. Seda teksti ei ole näha ei salvestatud failis ega kopeeritavates/asetatavates valikutes.

Tekst "<Ühendamise konflikt>" seevastu liigub küll lõikepuhvrisse, kui valida ja kopeerida/asetada sellist rida sisaldav tekst. Seepärast tasuks sellise võimalusega ettevaatlik olla.

Tavaline ühendamine lahendab lihtsad konfliktid automaatselt. Menüü "Ühendamine" pakub lisaks mõningaid toiminguid muude levinumate vajaduste rahuldamiseks. Kui sul tuleb enamasti konfliktide puhul valida üks ja sama baas, võid valida kõikjal "A", "B" või "C" või ainult veel lahendamata konfliktidele või ainult lahendamata tühimärkide konfliktidele. Kui soovid lahendada iga erinevuse ise käsitsi, võid lülitada sisse võimaluse "Määra erinevused konfliktideks". Kui soovid aga taas panna KDiff3 automaatselt konflikte lahendama, vali "Lahenda automaatselt lihtsad konfliktid". Seejärel alustab KDiff3 uuesti ühendamist. Kui selle käigus muudetakse midagi, mida oled varem muutnud, küsib KDiff3 enne jätkamist, mida soovid teha.

Märkus: kui valid lahendamata tühimärkide konfliktide baasi ning võimalus "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse" on sisse lülitatud, koheldakse muutusi numbrites või kommentaarides samuti tühimärkidena.

### Liikumine ja redigeerimine

Enamasti saab liikuda kerimisribade ja hiirega, kuid soovi korral on võimalik liikuda ka klahvidega. Kui klõpsata mis tahes aknasse, saab sarnaselt muude rakendustega kasutada noolenuppe, Page Up ja Page Down, Home, End, Ctrl+Home, Ctrl+End. Liikumiseks saab kasutada ka sisendafailide kerimisribast paremal pool asuvat ülevaateriba, mis võimaldab vajalikule kohale liikuda klõpsuga riba vajalikule kohale.

Üles-alla kerimiseks saab kasutada ka hiireratast.

Ühndamisväljundi redigeerimisaknas saab samuti kasutada kõiki tavalisi teksti redigeerimisel kasutatavaid klahve. Klahviga Insert saab lülitada lisamis- ja ülekirjutamisrežiimi (vaikimisi kehtib lisamisrežiim).

Klõps hiire vasaku nupuga mis tahes kokkuvõttetulbal sünkroniseerib kõik aknad, nii et neid näitavad üht ridadegruppi (seda selgitas lähemalt osa Ühendamine).

Nupureal on seitse liikumisnuppu, millega saab hüpata praegusele/esimesele/viimasele erinevusele, eelmisele/järgmisele erinevusele (Ctrl+Nool üles/Ctrl+Nool alla), eelmisele/järgmisele konfliktile (Ctrl+Page Down/Ctrl+Page Up) või eelmisele/järgmisele lahendamata konfliktile. Pane tähele, et KDiff3 jaoks jääb "konflikt", mida ei lahendata automaatselt ühendamise alguses, "konfliktiks" ka pärast selle käsitsi lahendamist. Seepärast on ka eristatud "lahendamata konfliktid".

Lisaks neile on nupp "Pärast allikavalikut liigutakse automaatselt järgmisele lahendamata konfliktile". Seda sisse lülitades hüppab KDiff3 allika valimisel automaatsel selles leiduval lahendamata konfliktile. See on abiks, kui soovid tavaliselt valida ainult ühe allika. Kui sul läheb vaja mõlemat allikat või soovid pärast valimist tegelda redigeerimisega, on tõenäoliselt mõttekas see välja lülitada. Enne järgmisele lahendamata konfliktile liikumist näitab KDiff3 hetkeks langetatud valiku toimet. Kui kaua see näitamine kestab, saab määrata seadistustes: "automaatse edasiliikumise viivitus" on võimalik määrata millisekundites 0 ja 2000 vahel. Vihje: kas oled tüdinud kogu aeg klõpsimast? Kasuta siis pisikest automaatse edasiliikumise viivitust ning kiirklahve Ctrl+1/2/3 A/B/C valimiseks.

### Valimine, kopeerimine ja asetamine

Sisendaknas kursorit ei näidata, seepärast tuleb valimine teha hiirega, klõpsates vasaku nupuga valiku alguses, hoides nuppu all ja liikudes valiku lõppu, pärast mida võib nupu vabastada. Sõna saab valida ka sellel topeltklõpsu tehes. Ühendamisväljundi redigeerimisaknas saab valida ka klaviatuuri abil, hoides all klahvi Shift ja liikudes noolenuppudega.

Lõikepuhvrisse kopeerimiseks tuleb vajutada nuppu "Kopeeri" (Ctrl+C või Ctrl+Insert). Lisaks sellele on olemas ka võimalus "Valiku automaatne kopeerimine". Selle sisselülitamisel kopeeritakse kõik, mida oled valinud, automaatselt ning sul puudub vajadus anda mis tahes moel kopeerimiskäsku. Kuid ole selle võimalusega ettevaatlik, sest nii võib kogemata üle kirjutada vajaliku lõikepuhvri sisu.

Käsk "Lõika" (Ctrl+X või Shift+Delete) kopeerib valitud teksti lõikepuhvisse ning kustutab selle, "Aseta" (Ctrl+V või Shift+Insert) aga asetab lõikepuhvris oleva teksti kursori asukohta või aktiivse valiku asemele.

### Salvestamine

Salvestamine on võimalik ainult siis, kui kõik konfliktid on lahendatud. Kui fail on juba olemas ning sisse on lülitatud valik "Failidest tehakse varukoopia", antakse olemasolevale failile laiend ".orig". Kui selline peaks juba olemas olema, see kustutatakse. Kui väljud või oled alustanud uud võrdlusanalüüsi ning andmeid ei ole veel salvestatud, pärib KDiff3 sinu käest, kas soovid salvestada, loobuda või jätkata ilma salvestamata (KDiff3 ei salvesta andmeid seesmiselt, nii et kui KDiff3 väljastpoolt "tappa", lähevad andmed kaotsi).

Realõpud salvestatakse vastavalt operatsioonisüsteemi tavale. UNIXi korral lõpetab rea reavahetusmärk "\n", Win32 süsteemides kelgu tagastamise sümbol pluss reavahetusmärk "\r\n". KDiff3 ei säilita sisendfailide realõppe, mis ühtlasi tähendab, et KDiff3 kasutamisel binaarfailidega peaks olema erakordselt ettevaatlik.

### Stringide otsimine

Stringe saab otsida KDiff3 kõigis tekstiakendes. Redigeerimismenüü käsk "Otsi..." (Ctrl+F) avab dialoogi, kus saab määrata, mida otsida. Samuti saab valida, millises aknas otsida. Otsimine algab alati teksti algusest. Käsk "Otsi järgmine" (F3) viib otsitava stringi järgmise esinemise juurde (kui seda muidugi on). Kui valid otsimise mitmes aknas, otsitakse esmalt ülalt alla läbi esimene aken, seejärel taas ülalt alla teine aken jne.

### Valikud

Valikud ja viimati avatud failide nimekiri salvestatakse alati, kui rakendusest väljud, ning laaditakse uuesti rakenduse taaskäivitamisel (menüükäsk Seadistused -> KDiff3 seadistamine...)

#### Font

Valib fikseeritud laiusega fondi (mõnes süsteemis pakub dialoog ka muutuva laiusega fonti, kuid seda ei tasuks kasutada).

Kaldkiri erinevustele:

  Selle valimisel näidatakse teksti erinevusi valitud fondi kaldkirjas. Kui valitud font kaldkirja ei toeta, ei tee see midagi.

#### Värvid

Esiplaani värv:

  Tavaliselt must.

Tausta värv:

  Tavaliselt valge.

Erinevuse tausta värv:

  Tavaliselt helehall.

Värv A:

  Tavaliselt tumesinine.

Värv B:

  Tavaliselt tumeroheline.

Värv C:

  Tavaliselt tume magenta.

Konflikti värv:

  Tavaliselt punane.

Praeguse vahemiku tausta värv:

  Tavaliselt helekollane.

Praeguse vahemiku erinevuse tausta värv:

  Tavaliselt tumekollane.

Ainult 16 või 256 värviga süsteemides ei pruugi mõned värvid puhtal kujul saadaval olla. Sellistes süsteemides valib puhta värvi nupp "Vaikeväärtused".

#### Redaktori seadistused

TAB lisab tühikud:

  Kui see ei ole sees, lisatakse tabeldusklahvile vajutades tabeldusmärk, kui see on sees, vastav kogus tühikuid.

TABi suurus:

  Kohandatav oma maitsele. Vaikimisi 8.

Automaatne taandus:

  Vajutades klahvile Enter, kasutatakse uuel real eelmise rea taandust.

Valiku automaatne kopeerimine:

  Iga tekstivalik kopeeritakse otsekohe lõikepuhvrisse, ilma et oleks vaja anda spetsiaalset kopeerimiskäsku.

Realõpu stiil:

  Salvestamisel saab valida, millist realõpu stiili eelistada. Vaikimisi on see valitud operatsioonisüsteemi põhjal.

Kohaliku kodeeringu kasutamine:

  Mitte-ladina sümbolite näitamiseks. Tasub kasutada, kui mõningaid sinu keele sümboleid ei näidata korrektselt.

#### Erinevuse ja ühendamise seadistused

Faile võrreldes püüab KDiff3 kõigepealt seada kokku read, mis on kõigis sisendfailides ühtmoodi. Ainult sel etapil võib ta eirata tühimärke. Teisel etapil võrreldakse iga rida ning nüüd võetakse arvesse ka tühimärgid. Tühimärke ei ignoreerita ka ühendamisel.

Säilitatakse reavahetus:

  Mõned redaktorid mõnes süsteemis salvestavad iga rea lõpu kelgu tagastuse märgiga '\r' ning reavahetusmärgiga '\n', teised aga ainult reavahetusmärgiga '\n'. Üldiselt KDiff3 ignoreerib kelgu tagastuse sümbolit, kuid sellisel juhul võivad tegelikult erineva suurusega failid paista võrdlemisel ühesugustena. Selle valiku sisselülitamisel on kelgutagatusmärgid näha, kuid neid koheldakse tühimärkidena. Ühendamise ajal tuleb see võimalus välja lülitada. Vaikimisi on väljas.

Numbreid ignoreeritakse:

  Vaikimisi väljas. Numbrilisi sümboleid ('0'-'9', '.', '-') ignoreeritakse analüüsi esimeses, üldvõrdlevas osas. Lõpptulemuses näidatakse siiski erinevusi, aga neid käsitletakse kui tühimärke.

C/C++ kommentaare ignoreeritakse:

  Vaikimisi väljas. Muudatusi kommentaarides tõlgendatakse tühimärkide muudatustena.

Tõstu ignoreeritakse:

  Vaikimisi väljas. Tähtede tõstu erinevusi (näiteks 'A' vs. 'a') tõlgendatakse tühimärkide muudatustena.

Eeltöötluse käsk:

  Vaata järgmist osa.

Ridade sobivuse eeltöötluse käsk:

  Vaata järgmist osa.

Karm uurimine:

  Püüab tuvastada ka kõige pisemad erinevused. Vaikimisi sees. Ilmselt on sellest rohkem kasu keerulisemate ja suurte failide korral. Aga mõistagi on see väga suurte failide puhul ka väga aeglane.

Automaatse edasiliikumise viivitus (ms):

  Kui automaatne edasiliikumine on sisse lülitatud, määrab see võimalus, kui kaua näidatakse valiku tulemust, enne kui hüpatakse järgmisele lahendamata konfliktile.

Tühimärkide käsitlemine 2/3 faili ühendamisel:

  Lahendab automaatselt kõik tühimärkide konfliktid määratud faili valides (vaikimisi käsitsivalik). Kasulik, kui tühimärgid pole olulise tähtsusega. Kui seda läheb ainult mõnikord vaja, kasuta parem ühendamismenüü käske "Vali A/B/C kõigi lahendamata tühimärgikonfliktide korral". Pane tähele, et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see automaatne valik ka kõigile numbrite või kommentaaride konfliktidele.

#### Kataloogide ühendamine

Need valikud käivad kataloogide uurimise ja nende ühendamise kohta, millest täpsemalt räägib osa Kataloogide võrdlemise ja ühendamise seletused.

Siiski on üks valik, mis käib ka üksikfailide salvestamise kohta:

Failidest tehakse varukoopia:

  Kui faili salvestamisel on sellest olemas vanem versioon, antakse viimasele laiend ".orig". Kui peaks olemas olema ka samanimeline varasem fail laiendiga ".orig", siis see kustutatakse.

#### Riigi ja keele valikud

Keel:

  Kasutajaliidese keele määramine. Selle muutmine ei mõjuta töötavat rakendust. Keele muutmiseks tuleb KDiff3 sulgeda ja uuesti käivitada. (See valik ei ole kasutatav KDiff3 KDE versioonis, sest seal saab keele määrata KDE üldises seadistuses.)

Kõikjal kasutatakse kodeeringut:

  Järgnevaid kodeeringuvalikuid saab määrata eraldi, välja arvatud juhul, kui äsjatoodud valik on sisse lülitatud, sest siis võtavad kõik valikud esimese valiku väärtuse.

Kohalik kodeering:

  Kodeeringu valimise väljade kohal seisab märge, mis annab teada kohaliku kodeeringu (see ei ole muudetav, vaid lihtsalt teadmiseks, kui sa ei peaks oma kodeeringut teadma).

A/B/C kodeering:

  Sisendfailide kodeeringu kohandamine. See mõjutab inglise tähestikku mittekuuluvate sümbolite esitamist. Kohandada saab iga kodeeringut eraldi, nii et sul on isegi võimalus võrrelda ja ühendada faile, mis on salvestatud erinevas kodeeringus.

Kodeering ühendamisväljundil ja salvestamisel:

  Kui muudad faili, saad siis määrata, millises kodeeringus salvestatakse see kettale.

Eelprotsessori failide kodeering:

  Kui oled määranud eelprotsessorid, võib juhtuda, et nad ei suuda sinu kodeeringut töödelda (kui näiteks sinu failid on 16-bitises Unicode''is, eelprotsessor suudab aga töödelda vaid 8-bitist ASCII-d). Siin saad määrata eelprotsessori väljundi kodeeringu.

Paremalt vasakule keeled:

  Mõningaid keeli kirjutatakse paremalt vasakule. Selle valiku sisselülitamisel näitab KDiff3 võrdluse sisendakendes ja ühendamise väljundaknas teksti paremalt vasakule. Pane tähele, et kui käivitad KDiff3 käsurealt võtmega "--reverse", kasutab kogu rakendus paremalt vasakule paigutust (seda võimaldab Qt). Käesolev käsiraamat on kirjutatud eeldusel, et "Paremalt vasakule keeled" ega võti "reverse" ei ole kasutusel. Sestap tuleb nende kasutamisel mõningaid "vasakul" või "paremal" antud kirjeldusi lugeda lihtsalt selle teadmise valguses vastupidi.

#### Muud

(neid valikuid ja toiminguid saab kasutada menüü või nupuriba vahendusel)

Näita reanumbreid:

  Võimalus valida, kas sisendfailidel näidatakse ridade numbreid.

Näita erinevusi tühiku- ja tabeldusmärkides:

  Vahel võivad nähtavad tühikud ja tabeldusmärgid tõsiselt häirida, millisel juhul on võimalik nende näitamine välja lülitada.

Näita tühimärke:

  Selle väljalülitamisel ei tõsteta esile tühimärkide erinevusi tekstis ega ülevaatetulbal. Pane tähele, et et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see ka kõigile numbrite või kommentaaride konfliktidele.

Ülevaate valikud:

  Neid valikuid saab kasutada ainult kolme faili võrdlemisel. Tavarežiimis näidatakse erinevusi ühel värvilisel ülevaatetulbal. Kuid vahel võivad huvi pakkuda kolmest faili ainult kahe erinevused. Valides vastavalt ülevaate "A vs. B", "A vs. C" või "B vs. C", näidatakse tavalise ülevaatetulba kõrval teist vajaliku infoga.

Reamurdmine võrdlusakendes:

  Read murtakse, kui nende pikkus ületab akna laiust.

Näita akent A/B/C:

  Vahel võib tekkida tahtmine ekraanil ruumi juurde tekitada, et näha paremini näiteks pikki ridu. Sellisel juhul saab peita aknad, mis ei ole hetkel olulised (menüü Aken).

Lülita poolitamissuund:

  Lülitab võrdlusakende asetsemist üksteise kõrval (A vasakul pool B ja B vasakul pool C) ning üksteise kohal (A B kohal ja B C kohal). Ka see võib olla abiks pikkade ridade korral (menüü Aken).

Kiirühendamine:

  Mõnikord võib leida erinevuste vaatamisel, et käes on aeg tegelda ühendamisega. "Ühenda praegune fail" menüüs Kataloog toimib ka siis, kui sa võrdled ainult kaht faili. Ühekordne klõps käivitab ühendamise ning kasutab vaikimisi väljundifaili nimena viimase sisendfaili nime (kui seda on kasutatud ühendamise taaskäivitamiseks, väljundfaili nimi säilitatakse).

#### Kiirklahvide seadistamine

Praegu toetab ainult KDE versioon kasutaja võimalust määrata kiirklahve (menüükäsk Seadistused -> Kiirklahvide seadistamine...)

### Eeltöötluse käsud:

KDiff3 toetab kaht eeltöötluse võimalust.

Eeltöötluse käsk:

  Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Algse faili asemel näeb siis antud käsu väljundit. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Kasuta seda võimalust näiteks faili ülearuste osade kõrvaldamiseks või taande automaatseks korrigeerimiseks vms.

Ridade sobivuse eeltöötluse käsk:

  Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Kui määratud on ka eeltöötluse käsk (vaata eespool), on eeltöötluse käsu väljund ridade sobivuse eeltöötluse käsu sisendiks. Viimase väljundit kasutatakse ainult analüüsi esimeses, reasobivuse faasis. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Igal sisendi real peab olema talle vastav väljundi rida.

Selle mõte on pakkuda kasutajale suuremat paindlikkust võrdlemistulemuse seadistamisel. Kuid see nõuab välist programmi ja mõistagi ei taha enamik sellist ise kirjutama hakata. Õnneks suudab enamasti selliste asjadega toime tulla `sed` või `perl`.

Näide: lihtne testnäide: Võtame faili a.txt (6 rida):

          aa
          ba
          ca
          da
          ea
          fa

Ja faili b.txt (3 rida):

          cg
          dg
          eg

Ilma eeltöötluseta seatakse vastavusse järgmised read:

          aa - cg
          ba - dg
          ca - eg
          da
          ea
          fa

Tõenäoliselt ei ole see sugugi see, mida sa soovisid, sest oluliseks infokandjaks on just esimesed tähed. Et sobivusalgoritn jätaks arvesse võtmata teise tähe, kasutame reasobivuse eeltöötluse käsku, mis asendab 'g' 'a'-ga:

       sed 's/g/a/'

Selle käsu korral on võrdlemise tulemus järgmine:

          aa
          ba
          ca - cg
          da - dg
          ea - eg
          fa

Seesmisel näeb sobivusalgoritm faile juba pärast reasobivuse eeltöötluse rakendamist, kuid ekraanil jääb fail muutmata. (Tavaline eeltöötlus muudaks andmeid ka ekraanil.)

#### `sed` põhitõed

Selles osas tutvustame ainult programmi `sed` üksikuid põhimõttelisi omadusi. Rohkem infot leiab käsuga info:/sed või aadressilt http://www.gnu.org/software/sed/manual/html_mono/sed.html. Windowsi eelkompileeritud versioon asub aadressil http://unxutils.sourceforge.net. Pane tähele, et järgmistes näidetes eeldame, et käsk `sed` asub mõnes keskkonnamuutujaga PATH määratud kataloogis. Kui see nii ei ole, tuleb sul määrata käsu täielik asukoht. Pane tähele ka seda, et järgnevates näidetes on kasutatud ühekordset jutumärki ('), mis Windowsis ei toimi - seal tuleb kasutada topeltjutumärke (").

Antud kontekstis kasutatakse ainult `sed`-i asenduskäsku:

       sed 's/REGULAARAVALDIS/ASENDUS/LIPUD'

Enne uue käsu kasutamist KDiff3-ga võiks seda esmalt testida konsoolil. Siin tuleb kasuks käsk `echo`. Näide:

       echo abrakadabra | sed 's/a/o/'
       -> obrakadabra

Toodud näites on tegemist äärmiselt lihtsa sed-käsuga, kus asendatakse esimene "a" "o"-ga. Kui soovid asendada kõik esinemiskorrad, tuleb kasutada lippu "g"-flag:

       echo abrakadabra | sed 's/a/o/g'
       -> obrokodobro

Sümbol "|" on torukäsk, mis edastab eelmise käsu väljundi järgmise käsu sisendile. Kui soovid testida pikema failiga, võid kasutada käsku `cat`, kui tegemist on UNIX-i süsteemiga, või `type`, kui tegu on Windowsiga. `sed` sooritab asenduse igal real.

    cat failinimi | sed võtmed

#### Näited `sed`-i kasutamise kohta KDiff3-ga

##### Muud tüüpi kommentaaride ignoreerimine

Praegu mõistab KDiff3 ainult C/C++ kommentaare. Reasobivuse eeltöötluse käsuga saab aga ignoreerida ka muud tüüpi kommentaare, teisendades need C/C++ kommentaarideks. Näide: kui soovid ignoreerida kommentaare, mille alguses on "#", tuleks need teisendada nii, et alguses oleks "//". Pane tähele, et seejuureks peaks olema võimalus "C/C++ kommentaare ignoreeritakse" olema sisse lülitatud, muidu pole asjal mõtet. Vastav reasobivuse eeltöötluse käsk näeb välja selline:

       sed 's/#/\/\//'

Kuna `sed` omistab sümbolile "/" eritähenduse, on oluline asetada asendusstringis iga "/" ette sümbol "\". Mõnikord on "\" vajalik teatud ertähendusega sümbolite lisamiseks või eemaldamiseks. Nüüd on olulised üksikjutumärgid (') enne ja pärast asenduskäsku, sest vastasel juhul püüab shell mõningaid erisümboleid, näiteks '#', '$' või '\' tõlgendada juba enne nende edastamist käsule `sed`. Pane tähele, et Windowsis tuleb anda topeltjutumärgid ("). Windows asendab ka muid sümboleid, näiteks '%', nii et siin võib olla vajalik veidi eksperimenteerida.

##### Tõstutundetu võrdlus

Järgmise reasobivuse eeltöötluse käsuga saab kogu sisendi muuta suurtäheliseks:

       sed 's/\(.*\)/\U\1/'

Siin on ".*" regulaaravaldis, mis sobib iga stringiga, antud kontekstis siis iga real asuva sümboliga. "\1" asendusstringis tähistab sobivat teksti esimeses "\(" and "\)" paaris. "\U" teisendab sisestatud teksti suurtäheliseks.

##### Versioonikontrolli võtmesõnade ignoreerimine

CVS ja muud versioonikontrolli süsteemid kasutavad mitmeid võtmesõnu automaatselt genereeritavate stringide lisamiseks (info:/cvs/Keyword substitution). Kõik need järgivad mustrit "$VÕTMESÕNA genereeritud tekst$". Nüüd läheb meil vaja reasobivuse eeltöötluse käsku, mis eemaldaks ainult genereeritud teksti:

       sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'

Võimalikke võtmesõnu eraldab "\|". Seda loendit võid mõistagi vastavalt oma vajadustele muuta. Enne "$" on kindlasti vajalik "\", sest muidu on "$" sobivuseks rea lõpp.

Kui katsetad `sed`-iga, hakkad arvatavasti veidi aduma regulaaravaldiste mõtet ja võib-olla isegi neid armastama. Iseenesest on regulaaravaldised väga kasulikud, sest päris paljud programmid toetavad sarnast võimalust.

##### Numbrite ignoreerimine

Numbrite ignoreerimine on tegelikult juba sisseehitatud võimalus. Kuid näitame siinkohal, kuidas see näeks välja reasobivuse eeltöötluse käsuna:

       sed 's/[0123456789.-]//g'

Sobivad kõik sümbolid '[' ja ']' vahel ning neid ei asendatagi, vaid lihtsalt kõrvaldatakse.

##### Teatud veergude ignoreerimine

Tekst võib olla rangelt vormindatud ning sisaldada näiteks veergu, mida soovid alati ignoreerida, samas aga muid veerge analüüsiks kasutada. Järgnevas näites ignoreeritakse viit esimest veergu (sümbolit), järgmised kümme säilitatakse, siis ignoreeritakse taas viit veergu ning ülejäänud rida säilitatakse.

       sed 's/.....\(..........\).....\(.*\)/\1\2/'

Iga punkt '.' vastab ühele sümbolile. "\1" ja "\2" asendusstringis tähistavad sobivat teksti esimeses ja teises "\(" ja "\)" paaris, märkides säilitatavat teksti.

##### Mitme asenduse kombineerimine

Vahel võib tekkida tahtmine teha mitu asendust korraga. Selleks tuleb nende eraldamiseks kasutada semikoolonit ';'. Näide:

    echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/'
       -> OBROKODOBRO

##### `perl`-i kasutamine `sed`-i asemel

`sed`-i asemel võib kasutada ka midagi muud, näiteks `perl`.

       perl -p -e 's/REGULAARAVALDIS/ASENDUS/LIPUD'

Kuid `perl` on mõnevõrra erinev. Pane tähele, et kui `sed`-ile oli vaja "\(" ja "\)", siis `perl`-ile on vaja lihtsalt "(" ja ")" ilma eelneva '\'. Näide:

    sed 's/\(.*\)/\U\1/'
       perl -p -e 's/(.*)/\U\1/'

#### Eeltöötluse sooritamise järjekord

Andmed suunatakse läbi sisemiste ja väliste eeltöötluse käskude järgmises järjekorras

- Tavaline eeltöötlus,

- Reasobivuse eeltöötlus,

- Tõstu ignoreerimine (teisendamine suurtäheliseks),

- C/C++ kommentaaride tuvastamine,

- Numbrite ignoreerimine,

- Tühimärkide ignoreerimine

Tavalise eeltöötluse tulemusandmed säilitatakse näitamiseks ja ühendamiseks. Muud operatsioonid muudavad ainult andmeid, mida näeb reasobivuse võrdlusalgoritm.

Neil harvadel juhtudel, kui kasutad tavalist eeltöötluse käsku, arvesta, et reasobivuse eeltöötluse käsk peab tavalise eeltöötluse käsu väljundit oma sisendiks.

#### Hoiatus

Eeltöötluse käsud on sageli vägagi kasulikud, aga nagu ikka võimalustega, mis muudavad sinu teksti või peidavad automaatselt teatud erinevused, võib sel moel kogemata mõningad erinevused kahe silma vahele jätta või eriti halval juhul isegi olulised andmed hävitada.

Seetõttu teatab KDiff3 ühendamisel sellest, et kasutatakse tavalist eeltöötluse käsku, ning pärib, kas seda lubada vi mitte. Kuid sind ei hoiatata, kas reasobivuse eeltöötluse on aktiivne või mitte. Ühendamine on valmis alles siis, kui kõik konfliktid on lahendatud. Kui lülitad välja võimaluse "Tühimärkide näitamine", siis on nähtamatud ka erinevused, mis eemaldati reasobivuse eeltöötluse käsuga. Kui ühendamisel ei saa kasutada nuppu 'Salvesta' (sest failis on veel konflikte), lülita "tühimärkide näitamine" sisse. Kui sa ei soovi neid enamasti vähese tähtsusega erinevusi käsitsi ühendada, vali ühendamismenüüst käsk "Vali [A|B|C] kõigi lahendamata tühimärgikonfliktide korral".

## Kataloogide võrdlemine ja ühendamine

### Sissejuhatus

Programmeerijad peavad sageli oma eesmärgi saavutamiseks muutma kataloogis paljusid faile. Selle ülesande kergendamiseks võimaldab KDiff3 võrrelda ja ühendada ka terveid katalooge koos nende alamkataloogidega!

Kuigi kataloogide võrdlemine ja ühendamine tundub olevat üsna lihtne ja selge, tuleks siin siiski arvestada mitme asjaga. Kõige olulisem on kahtlemata see, et sellisel juhul puudutab iga operatsioon paljusid faile korraga. Kui sa ei ole esialgsetest andmetest varukoopiat teinud, võib algoleku taastamine olla väga raske või isegi võimatu. Seepärast kontrolli enne ühendamise alustamist alati, et andmed on turvaliselt varundatud ja et sul on alati võimalus tagasi minna. Kas kasutada arhiveerimist või mõnda versioonide kontrollimise süsteemi, on sinu enda otsustada, kuid pea silmas, et ka ülikogenud programmeerijad vajavad aeg-ajalt vanu alliktekste. Ning ühtlasi arvesta sedagi, et kuigi mina (see tähendab, KDiff3 autor) olen püüdnud anda endast parima, ei saa ma täie kindlusega öelda, et rakendus on ideaalne ja täiesti veatu. Nagu ütleb GNU Üldine Avalik Litsents, ei ole sellel rakendusel MITTE MINGIT garantiid. Seepärast pea alati meeles, et

> Eksimine on inimlik, aga tõelise segaduse korraldamiseks läheb vaja arvutit.

Vaatame siis, mida meie rakendus suudab teha. KDiff3...

- ... loeb ja võrdleb kaht või kolme kataloogi koos alamkataloogidega

- ... peab spetsiaalselt silmas nimeviitu

- ... võimaldab faile vaadelda hiire topeltklõpsuga

- ... iga elemendi korral pakub välja ühendamisoperatsiooni, mida sul on voli muuta enne tegeliku kataloogide ühendamise alustamist

- ... võimaldab ühendamist simuleerida, näidates ära toimingud, mis ette võetakse, ilma neid tegelikult veel tegemata

- ... võimaldab mõistagi ka tegelikku ühendamist ning pakub sulle sekkumise võimalust kõikjal, kus selleks vajadus tekib

- ... võimaldab käivitada valitud toimingu kõigil elementidel (klahv F7) või ainult valitud elemendil (klahv F6)

- ... lubab jätkata pärast sekkumist ühendamist klahvile F7 vajutades

- ... lisavõimalusena loob varukoopiad laiendiga ".orig"

- ...

### Kataloogide võrdlemise või ühendamise alustamine

See on väga sarnane failide ühendamisele ja võrdlemisele. Sul tuleb lihtsalt valida kataloogid käsureal või avamisdialoogis.

#### Kahe kataloogi võrdlemine/ühendamine:

    kdiff3 kataloog1 kataloog2
       kdiff3 kataloog1 kataloog2 -o sihtkataloogr

Kui sihtkataloogi ei määrata, on KDiff3 jaoks selleks kataloog2.

#### Kolme kataloogi võrdlemine/ühendamine:

    kdiff3 kataloog1 kataloog2 kataloog3
       kdiff3 kataloog1 kataloog2 kataloog3 -o sihtkataloog

Kolme kataloogi ühendamisel võetakse kataloog1 ühendamise baasiks. Kui sihtkataloogi ei ole määratud, on selleks KDiff3 silmis kataloog3.

Pane tähele, et automaatselt algab ainult võrdlemine, mitte aga ühendamine. Viimase jaoks tuleb kasutada vastavat menüükäsku või klahvi F7 (sellest räägime pikemalt veidi hiljem).

### Nähtav info

Kataloogide lugemisel ilmub teatekast, mis näitab edenemise käiku. Kui katkestad kataloogi läbiuurimise, näidatakse ainult neid faile, mida selle hetkeni jõuti võrrelda.

Kui kataloogide skaneerimine on lõpule jõudnud, näitab KDiff3 nimekirjakasti, kus vasakul on tulemused...

... ja paremal üksikasjad parajasti valitud elemendi kohta:

#### Nimeveerg

Iga skaneerimisel leitud faili ja kataloogi näidatakse puus. Vajaliku elemendi saab valida sellel hiirega klõpsates.

Vaikimisi on kataloogid suletud. Neid saab avada või sulgeda klõpsuga nende ees seisvale "+"/"-" või topeltklõpsuga kirjel või klahvidega Nool vasakule/paremale. Menüüs "Kataloog" on käsud "Ava kõik alamkataloogid" ja "Sule kõik alamkataloogid", mis lubavad korraga avada/sulgeda kõik alamkataloogid.

Failil topeltklõpsu tehes alustatakse võrdlemist ning ilmub failide võrdlemise aken.

Pilt nimeveerus kajastab faili tüüpi esimeses kataloogis ("A"). See võib olla üks järgmistest:

- Tavaline fail

- Tavaline kataloog (kaustakujuline pilt)

- Viit failile (failipilt viidanoolega)

- Viit kataloogile (kaustakujuline pilt viidanoolega)

Kui failitüüp on erinevates kataloogides erinev, on see näha veergudes A/B/C ning aknas, mis näitab valitud elemendi üksikasju. Pane tähele, et sellisel juhul ei ole võimalik automaatselt käivitada ühendamist. Kui seda siiski tehakse, antakse kasutajale teada, miks see ei ole võimalik.

#### Veerud A/B/C ja värviskeem

Nagu ülal näha, kasutatakse veergudes A/B/C punast, rohelist, kollast ja musta värvi.

- Must: selles kataloogis sellist elementi ei ole.

- Roheline: uusim element.

- Kollane: vanem kui roheline, uuem kui punane.

- Punane: vanime element.

Võrdlemisel ühesuguseks osutunud elementide värv on siiski samuti ühesugune ka siis, kui nad on erineva vanusega.

Katalooge peetakse võrdseks, kui kõik nendes olevad elemendid on samasugused. Siis võib neil olla ka ühesugune värv. Ka kataloogide korral ei mõjuta värvi vanus.

Selle värviskeemi mõtte andis mulle dirdiff. Need värvid meenutavad mõneti puulehte, mis värskena on roheline, muutub hiljem kollaseks ja lõpuks punaseks.

#### Operatsiooniveerg

Pärast kataloogide võrdlemist hindab KDiff3 ühendamise võimalusi. Seda näitab veerg "Operatsioon". Operatsiooni on võimalik muuta, kui klõpsata sellel operatsioonil, mida soovid muuta. Ilmub väike hüpikmenüü, mis lubab valida antud elemendile vajaliku operatsiooni. (Kõige vajalikumad operatsioonid saab valida ka klaviatuurilt, näiteks Ctrl+1/2/3/4/Del valib vastavalt võimalusele A/B/C/Ühenda/Kustuta.) Valitud operatsioon tehakse teoks ühendamise käigus. Valikud sõltuvad elemendist ning ühendamisrežiimist. Viimaseks võib olla üks järgmistest:

- Kolme kataloogi ühendamine ("A" on sellisel juhul teistele baasiks).

- Kahe kataloogi ühendamine.

- Kataloogide sünkroniseerimine (selle saab aktiveerida valikuga "Kataloogide sünkroniseerimine").

Kolme kataloogi ühendamisel on operatsioonide valikuks juhul, kui...

- ... kõik kolm kataloogi on võrdsed: kopeeri C-st

- ... A ja C on võrdsed, aga B mitte: kopeeri B-st (või kui B-d ei ole, siis kustuta sihtmärk, kui see on olemas)

- ... A ja B on võrdsed, aga C mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas)

- ... B ja C on võrdsed, aga A mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas)

- ... ainult A on olemas: kustuta sihtmärk (kui on olemas)

- ... ainult B on olemas: kopeeri B-st

- ... ainult C on olemas: kopeeri C-st

- ... A, B ja C ei ole võrdsed: ühenda

- ... A, B ja C ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide vastuolu". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.

Kahe kataloogi ühendamisel on operatsioonide valikuks juhul, kui...

- ... mõlemad kataloogid on võrdsed: kopeeri B-st

- ... A on olemas, aga mitte B: kopeeri A-st

- ... B on olemas, aga mitte A: kopeeri B-st

- ... nii A kui B on olemas, aga mitte võrdsed: ühenda

- ... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide vastuolu". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.

Sünkroniseerimisrežiimi saab kasutada ainult siis, kui tegemist on kahe kataloogiga, märgitud ei ole konkreetset sihtmärki ning sisse on lülitatud valik "Kataloogide sünkroniseerimine". KDiff3 valib sel juhul vaikeoperatsiooni, et muuta mõlemad kataloogid võrdseks. Juhul kui...

- ... mõlemad kataloogid on võrdsed: midagi pole teha.

- ... A on olemas, aga mitte B: kopeeri A -> B

- ... B on olemas, aga mitte A: kopeeri B -> A

- ... A ja B on mõlemad olemas, aga mitte võrdsed: ühenda ja salvesta tulemus mõlemas kataloogis (kasutaja näeb B salvestamist, kuid KDiff3 kopeerib ka B-st A-sse).

- ... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide vastuolu". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada.

Kui kahe kataloogi ühendamisel on sisse lülitatud valik "Ühendamise asemel kopeeritakse uuem", uurib KDiff3 kuupäevi ning pakub välja uuema faili valimise. Kui failid ei ole võrdsed, ent on sama kuupäevaga, näitab operatsiooniveerg teadet "Viga: kuupäevad on samad, aga mitte failid." Kui kataloogis on selliseid elemente, ei ole võimalik ühendamist alustada.

#### Staatuseveerg

Ühendamisel võetakse ette üks fail teise järel. Staatuseveerg näitab kirjet "Tehtud" elementide puhul, mille ühendamist saatis edu, ning midagi muud, kui ühendamise käigus tuli ette midagi ootamatut. Kui ühendamine on lõpule jõudnud, võiksid üle kontrollida ka staatuseveeru, et näha, kas kõik seal ikka rahuldab sind.

#### Statistikaveerg

Kui seadistustes on sisse lülitatud failide võrdlemise režiim "Täielik analüüs", näitab KDiff3 lisatuple, kus on kirjas lahendamata, lahendatud, tühimärkide ja mitte-tühimärkide konfliktide arv. (Lahendatud konflitkide arvuga tulpa näidatakse ainult kolme kataloogi võrdlemisel või ühendamisel.)

### Ühendamine

Ühendada on võimalik parajasti valitud element (fail või kataloog) või kõik elemendid. Kui oled langetanud kõik operatsioonivalikud (ka alamkataloogides), võid alustada tegelikku ühendamist.

Pane tähele, et kui sa ei määranud sihtkataloogi, peetakse kolme kataloogi ühendamisel selleks "C", kahe kataloogi ühendamisel "B" ning sünkroniseerimisel "A" ja/või "B".

Kui oled sihtkataloogi määranud, kontrolli, et kõik elemendid, mis peaksid olema väljundis, oleksid olemas ka puus. Kasutada saab mõningaid valikuid, mis jätavad teatud elemendid kataloogide võrdlemisel ja ühendamisel arvesse võtmata. Vaata need valikud üle, et vältida ebameeldivaid üllatusi:

- "Rekursiivsed kataloogid": kui see on väljas, ei kaasata elemente alamkataloogides.

- "Failimuster"/"Anti-failimuster": kaasatakse/jäetakse välja mustriga sobivad elemendid

- "Peidetud failid jäetakse välja"

- "Ainult erinevuste näitamine": failid, mis on kõigis kataloogides ühesugused, jäävad puus näitamata ja seega ei ole neid ka sihtkataloogis.

(Praeguses versioonis tuleb taasskaneerimine pärast kataloogide skaneerimist mõjutavate valikute muutmist käsuga "Kataloog"->"Uuri uuesti läbi" uuesti ette võtta.)

Kui kõik on korras, siis ülejäänud on juba lihtne.

Kõigi elementide ühendamine: vali menüüst "Kataloog" käsk "Alusta/jätka kataloogi ühendamist" või kasuta kiirklahvi F7. Ainult aktiivse elemendi ühendamine: vali "Käivita operatsioon käesoleva elemendiga" või vajuta F6.

Kui failitüüpide konflikti tõttu esineb veel mõningaid sobimatute operatsioonidega elemente, ilmub teatekast, mis osutab sellistele elementidele, nii et sa saad valida neile vajalikud operatsioonid.

Kui ühendad kõik elemendid, ilmub dialoog, kus valikuvõimalusteks on "Tee ära", "Simuleeri" ja "Loobu".

- Vali "Simuleeri", kui soovid näha, mida ette võetakse, ilma et seda tegelikult ette võetaks. Näidatakse põhjalikku ülevaadet, milliseid aktsioone sinu tegevus endaga kaasa tooks.

- Ühendamise tegelikuks alustamiseks vali "Tee ära".

Seejärel asub KDiff3 kõigi elementidega läbi viima neile määratud operatsioone. Kui vaja läheb käsitsi sekkumist (konkreetse faili ühendamisel), ilmub ühendamisaken (vaata suurt pilti).

Kui oled faili kallal kõik vajaliku ära teinud, vali uuesti menüükäsk "Alusta/jätka kataloogi ühendamist" või vajuta klahvi F7. Kui sa ei ole veel salvestanud, ilmub dialoog, mis teeb sulle vastava ettepaneku. Seejärel võtab KDiff3 ette järgmise elemendi.

Kui KDiff3 satub silmitsi veaga, annab ta sellest sulle teada ning näitab ka põhjalikku infot vea kohta, mis võib aidata kaasa arusaamisele, mis viga põhjustas. Kui valid ühendamise jätkamise (klahv F7), võimaldab KDiff3 sul antud elemendi ühendamist uuesti proovida või see vahele jätta. See tähendab, et sa saad enne jätkamist valida mõne muu operatsiooni või jätta hetkel asi nii, nagu on, et leida lahendus hiljem.

Kui ühendamine on lõpule jõudnud, annab KDiff3 sellest teatekastiga sulle märku.

Kui mõned elemendi on ühendatud individuaalselt, jätab KDiff3 selle (antud ühendamisseansi ajal) meelde ega hakka neid enam ühendama, kui valid hiljem kõigi elementide ühendamise. Isegi juhul, kui ühendamine jäeti tegelikult vahele või midagi ei salvestatud, peetakse neid elemente ühendatuks, nii et nendega saab hakata uuesti tegelema alles siis, kui oled vahetanud ühendamisoperatsiooni.

### Kataloogide võrdlemise ja ühendamise valikud

KDiff3 seadistustes (menüükäsk "Seadistused"->"KDiff3 seadistamine") on sektsioon "Kataloogide ühendamine" järgmiste valikutega:

Rekursiivsed kataloogid:

  Võimalus valida, kas kataloogid otsitakse läbi rekursiivselt, see tähendab, koos alamkataloogidega.

Failimustrid:

  Puus näidatakse ainult faile, mis vastavad siin määratud mustrile. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?' (nt. "*.cpp;*.h"). Vaikimisi on muster "*". Kataloogid mustrit ei vaja.

Anti-failimustrid:

  Selle mustriga sobivad failid ja kataloogid jäetakse puust välja. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?'. Vaikimisi on muster "*.orig;*.o".

.cvsignore kasutamine:

  Ignoreeritakse faile ja katalooge, mida ignoreerib ka CVS. CVS eirab paljusid automaatselt genereeritud faile. Selle suureks eeliseks on see, et see võib olla kataloogipõhine kohaliku ".cvsignore" faili vahendusel (vaata info:/cvs/cvsignore).

Peidetud failide ja kataloogide otsimine:

  Mõnes failisüsteemis on failidel atribuut "peidetud", teistes süsteemides peidab failid nende nime ees seisev punkt ("."). See valik lubab sul määrata, kas sellised failid kaasatakse puusse või mitte. Vaikimisi sees.

Failiviitade järgimine:

  Kui on väljas, võrreldakse nimeviitu, kui sees, siis faile, millele viidatakse. Vaikimisi väljas.

Kataloogiviitade järgimine:

  Kui on väljas, võrreldakse nimeviitu, kui sees, peetakse viitu kataloogideks ning neid skaneeritakse rekursiivselt. (Pane tähele, et programm ei kontrolli, kas viit on "rekursiivne", nii et kui viita kataloogile sisaldav kataloog tekitab lõputu silmuse, siis mõne aja pärast, kui pinu on ületäidetud või mälu otsa saab, elab programm üle krahhi.) Vaikimisi väljas.

Ainult erinevuste näitamine:

  Näidatakse ainult elemente, mis ei ole sisendkataloogides võrdsed ning muudetud faile. Seepärast ei kopeerita ka kataloogides võrdseid faile ühendamisele ning kui sihtkataloog sellist faili eelnevalt ei sisaldanud, võibki see ilma selliste failideta jääda (võimalik, et tulevastes versioonides see valik muutub). Vaikimisi väljas.

Failide võrdlemise režiim:

  Binaarne võrdlemine:

    See on vaikimisi failide võrdlemise režiim.

  Täielik analüüs:

    Sooritab iga faili täieliku analüüsi ja näitab statistikatulpi (lahendatud, lahendamata, tühimärkide ja mitte-tühimärkide konfliktide arv). Täielik analüüs on aeglasem kui tavaline binaarne analüüs ning palju aeglasem, kui tegemist on failidega, mis ei sisalda teksti. (Määra sobivad anti-failimustrid.)

  Muutmiskuupäeva usaldamine:

    Suurte kataloogide võrdlemisel üle aeglase võrgu on usutavasti kiirem võimalus võrrelda ainult muutmiskuupäevi ja failide suurust. Kuid kui see ka suurendab kiirust, võib see ometi kaasa tuua eksimusi. Seepärast tasuks selle kasutamisse ettevaatlikult suhtuda. Vaikimisi väljas.

  Suuruse usaldamine:

    Sarnane muutmiskuupäeva usaldamisele. Tegelikku võrdlemist ei teostata. Kaht faili peetakse võrdseks, kui nende failisuurus on võrdne. See on abiks, kui failide kopeerimisel ei säilunud muutmise aeg. Kasuta seda siiski ettevaatlikult. Vaikimisi väljas.

Kataloogide sünkroniseerimine:

  Aktiveerib "sünkroniseerimisrežiimi", mille puhul võrreldakse kaht kataloogi ilma konkreetset sihtkataloogi määramata. Selles režiimis valitakse operatsioonid nii, et lõpptulemusena oleks kaks kataloogi võrdsed. Ka ühendamise tulemused kirjutatakse mõlemasse kataloogi. Vaikimisi väljas.

Ühendamise asemel kopeeritakse uuem:

  Ühendamise asemel pakutakse operatsiooniks uuema allika kopeerimine. Seda võimalust peetakse ebaturvaliseks, sest see eeldab, et teist faili ei ole redigeeritud. Seda aga tasuks igal juhul konkreetselt kontrollida. Vaikimisi väljas.

Failidest tehakse varukoopia:

  Kui fail või terve kataloog asendatakse teisega või kustutatakse, säilitatakse algne versioon, andes sellele laiendi ".orig". Kui on juba olemas varasem varukoopia laiendiga ".orig", siis see kustutatakse. See toimib nii kataloogide kui failide liitmisel. Vaikimisi sees.

### Muud funktsioonid

#### Ekraani poolitamine ja täisekraanirežiim

Tavaliselt jääb faili võrdlemisel või ühendamisel kataloogi ühndamise nimekiri nähtavale. Hiirega võid aga liigutada failide nimekirja võrdlusaknast eraldavat riba. Kui sa seda soovi, võid menüüst "Kataloog" võmaluse "Poolitamisvaade" välja lülitada. Seejärel võid kasutada menüüs "Kataloog" olevat võimalust "Lülita vaadet", et vahetada kogu ekraani täitvat failinimekirja või võrdlusakna vaadet.

#### Ühe faili võrdlemine või ühendamine

Võib juhtuda, et eelistad võrdlemiseks kasutada lihtsalt klõpsu failil. Samasugune käsk on siiski olemas ka menüüs "Kataloog". Samuti saab vahetult ühendada konkreetse faili ilma kataloogide ühendamist käivitamata, kui valida menüst "Kataloog" käsk "Ühenda üks fail". Tulemuse salvestamisel märgitakse selles staatuseks "Tehtud" ning kui seejärel käivitada kataloogide ühendamine, seda faili enam ei kaasata.

Kuid pane tähele, et see staatus läheb kaduma, kui käivitad uuesti kataloogi skaneerimise (menüü "Kataloog", käsk "Uuri uuesti läbi")

## Mitmesugused teemad

### Võrguläbipaistvus KIO vahendusel

#### KIO moodulid

KDE toetab võrguläbipaistvust oma KIO moodulite abil. KDiff3 kasutab neid sisendfailide lugemiseks ja kataloogide läbiuurimiseks. See tähendab, et võid faile ja katalooge määrata URL-e kasutades nii kohalikul kui võrgumasinal.

Näide:

    kdiff3 test.cpp  ftp://ftp.faraway.org/test.cpp
       kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir

Esimene rida võrdleb kohalikku faili failiga FTP serveril. Teine rida võrdleb kataloogi arhiivifailis kohaliku kataloogiga.

Muud huvipakkuvad KIO moodulid:

- WWW failid (http:)

- FTP failid (ftp:)

- Krüptitud failiedastused (fish:, sftp:)

- Windowsi ressursid (smb:)

- Kohalikud failid (file:)

Muud asjad, mis on võimalikud, aga arvatavasti vähekasutatavad:

- Man-leheküljed (man:)

- Info-leheküljed (info:)

#### Kuidas kirjutada URL-e

Võrreldes kohalike failide ja kataloogide asukohaga on URL-il teistsugune süntaks. Silmas tuleks pidada järgmisi asju:

- Asukoht võib olla suhteline ja sisaldada märke "." või "..". See ei ole võimalik URL-ide puhul, mis on alati absoluutsed.

- Erisümbolid tuleb alati "päästa" ("#" -> "%23", tühik -> "%20" jne.). Näiteks failil nimega "/#foo#" on URL "file:/%23foo%23".

- Kui URL ei toimi oodatult, proovi see avada Konqueroris.

#### KIO moodulite võimalused

Võrguläbipaistvusel on üks puudus: mitte kõik ressurssid ei paku ühesuguseid võimalusi.

Vahel sõltub see serveri failisüsteemis, vahel protokollist. Toome siin ära lühikese piirangute loetelu:

- Vahel ei ole viidad toetatud.

- Vahel aga ei ole võimalik eristada, kas viit osutab failile või kataloogile: Sellisel juhul eeldatakse alati faili (ftp:, sftp:).

- Alati pole võimalik määrata failisuurust.

- Piiratud õiguste toetus.

- Puudub võimalus muuta õigusi või muutmisaega, mistõttu koopia õigused või aeg erinevad originaalist - vaata ka võimalust "Suuruse usaldamine". (See on võimalik ainult kohalike failidega.)

### &kdiff3; kui KPart

&kdiff3; on KPart. Hetkel on teostatud liides KParts::ReadOnlyPart.

Selle peamine kasutusala on erinevuste vaatamine KDevelopis. KDevelop käivitab alati esmalt oma seesmise erinevuste näitaja. KDiff3 väljakutsumiseks klõpsa hiire parema nupuga erinevuste näitaja aknal ja vali kontekstimenüüst "Näita KDiff3-s".

KDiff3 vajab tavaliselt sisendiks kaht faili. Komponendina kasutades eeldab KDiff3, et sisendfail on paigafail unifitseeritud vormingus. Seejärel hangib KDiff3 paigafailist algupärased failinimed. Vähemalt üks kahest failist peab olema kättesaadav. Seejärel kutsub KDiff3 välja käsu `patch` teise faili taasloomiseks.

Konqueroris võib valida paigafaili ning seejärel kontekstimenüüst "Eelvaatlus KDiff3-s". Arvesta, et see ei toimi, kui ühtegi algupärast faili ei ole saadaval, ning see ei ole eriti usaldusväärne, kui algfaili või ka mõlemat algfaili on muudetud pärast paigafaili loomist.

Komponendina käivitades pakub KDiff3 ainult kahe faili võrdlemist, väga pisikest tööriistariba ja menüüd. Ühendamine ega kataloogide võrdlemine ei ole praegu toetatud.

## Küsimused ja vastused

&reporting.bugs; &updating.documentation;

Miks on selle nimi "KDiff3"?

Sellised vahendid, nagu "KDiff" ja "KDiff2" (nüüd nimega "Kompare") olid juba olemas. Samuti laseb "KDiff3" oletada, et see tuleb toime ühendamisega samamoodi nagu "diff3" vahend Diff-Tool paketis.

Miks on selle litsents GPL?

Ma olen GPL programme kasutanud juba väga pikka aega ning väga palju õppinud arvukaid lähtekoode uurides. Seepärast kuulub ka minu siiras tänu kõigile, kes on nii talitanud, talitavad või alles kavatsevad talitada.

Mõned nupud ja funktsioonid on puudu. Mis lahti?

Kompileerisid ilmselt rakenduse lähtekoodist, kuid jätsid konfigureerimisel korrektse KDE prefiksi määramata. Vaikimisi igatseb .configure paigalduse ette võtta kataloogis /usr/local, kuid sellisel juhul ei leia KDE kasutajaliides ressursifaili (st. kdiff3ui.rc). Korrektsest prefiksist räägib pikemalt fail README.

Enamasti on sarnased, aga mitte samased read teineteise kõrval, aga mitte alati. Miks?

Ridu, mis erinevad ainult tühimärkide arvu poolest, peetakse algul "võrdseks", samas muudab ka üksainus teistsugune tühimärk failid "erinevaks". Kui sarnased read satuvad teineteise kõrvale, on see tegelikult kokkusattumus, aga õnneks esineb seda päris sageli.

Miks peavad enne salvestamist olema lahendatud kõik konfliktid?

Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. Seda on vaja selleks, et konflikte oleks võimalik käsitsi lahendada lihtsalt allikanuppu (A, B või C) valides. See info läheb kaotsi, kui tekst salvestada ning sellise spetsiaalse failivormingu loomine, mis toetaks kogu vajaliku info salvestamist ja taastamist, oleks liiga keeruline ning raske.

Miks puudub redaktoril ühendamise tulemuste aknas "tagasivõtmise" funtksioon?

Ka see nõuaks asjade praeguse seisu juures liiga palju tööd ja vaeva. Vajalik versioon on võimalik alati taastada konkreetse allika (A, B või C) põhjal lihtsalt vastavat nuppu klõpsates. Suurema redigeerimise korral on nagunii soovitatav kasutada mõnda muud redaktorit.

Eemaldasin veidi teksti ja järsku ilmus "<Lähterida puudub>", mida ei saa kuidagi kõrvaldada. Mida see tähendab ja kuidas sellest lahti saada?

Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. "<Lähterida puudub>" tähendab, et sektsiooni ei ole enam midagi jäänud, isegi mitte reavahetusmärki. See võib juhtuda automaatsel ühendamisel või redigeerimise ajal. Tegelikult ei ole see üldse mingi probleem, sest salvestatud failis seda viidet enam ei ole. Kui soovid algvarianti tagasi, vali lihtsalt sektsioon (klõpsuga vasakul asuval kokkuvõttetulbal) ning seejärel klõpsa vajaliku sisuga allkfaili nuppu (A/B või C).

Miks KDiff3 ei toeta süntaksi esiletõstu?

KDiff3 kasutab niigi palju värve erinevuste esiletõstmiseks. Veelgi rohkem värve ajaks asja ainult arusaamatult kirjuks. Kui sa siiski soovid süntaksi esiletõstu, tuleb sul leppida mõne muu redaktoriga.

Siin on küll palju infot, aga mitte vastust minu küsimusele!

Palun saada oma küsimus mulle. Ma olen väga rõõmus igasuguse tagasiside üle.

## Autorid ja litsents

&kdiff3; - failide ja kataloogide võrdlemise ja ühendamise vahend

Rakenduse autoriõigus 2002-2005: Joachim Eibl joachim.eibl AT gmx.de

Mitmed lahedad ideed ja vearaportid on pärit minu kolleegidelt ning paljudelt metsiku veebi asukatelt. Tänud teile kõigile!

Dokumentatsiooni autoriõigus © 2002-2005: Joachim Eibl joachim.eibl AT gmx.de

Tõlge eesti keelde: Marek Laane bald@online.ee

&underFDL; &underGPL;

## Paigaldamine

### &kdiff3; hankimine

KDiff3 uusima versiooni saab alla laadida selle koduleheküljelt http://kdiff3.sourceforge.net.

KDiff3 on saadaval ka muudele platvormidele. Vaata lähemalt koduleheküljelt.

### Nõuded

&kdiff3; kõigi omaduste edukaks kasutamiseks on vajalik &kde; >3.1.

Infot selle kohta, kuidas panna KDiff3 tööle muudel platvormidel ilma KDE-ta, vaata palun koduleheküljelt.

Muudatuste nimekirka leiab internetist http://kdiff3.sourceforge.net/ChangeLog või lähtepaketist failis "ChangeLog".

### Kompileerimine ja paigaldamine

&kdiff3; kompileerimiseks ja paigaldamiseks KDE-d kasutavas süsteemis anna &kdiff3; paketi baaskataloogis viibides käsureal korraldused:

    % ./configure --prefix=kde-kataloog
    % make
    % make install

kde-kataloog määrab kataloogi süsteemis, kuhu on paigaldatud KDE. Kui sa ei ole selles kindel, loe faili README.

Kuna &kdiff3; kasutab programme `autoconf` ja `automake`, ei tohiks kompileerimisel probleeme esineda. Kui neid siiski tekib, anna neist palun teada &kde; meililistides.

&documentation.index;