Dokumentation af filsammenligning og fletning

Kommandolinjeflag

Sammenlign to filer:

kdiff3 fil1 fil2

Sammenflet to filer:

kdiff3 fil1 fil2 -m
   kdiff3 fil1 fil2 -o uddatafil

Sammenlign tre filer:

kdiff3 fil1 fil2 fil3

sammenflet tre filer:

kdiff3 fil1 fil2 fil3 -m
   kdiff3 fil1 fil2 fil3 -o uddatafil

Bemærk at fil1 behandles som basis for fil2 og fil3.

Specialtilfælde: Filer med samme navn
Hvis alle filer har samme navn men er i forskellige mapper, kan du reducere hvor meget du skal skrive ved kun at angive filnavnet for den første fil. F.eks.:

kdiff3 kat1/filnavn kat2 kat3

Kommandolinje for at starte en mappesammenligning eller sammenfletning:
Dette er meget lignende, men nu drejer det sig om mapper.

kdiff3 kat1 kat2
   kdiff3 kat1 kat2 -o målkat
   kdiff3 kat1 kat2 kat3
   kdiff3 kat1 kat2 kat3 -o målmappe

For mappesammenligning og sammenfletning kan du fortsætte med at læse her.

For mere information om kommandolinjeflag bruges:

kdiff3 --help

Dialogen Åbn
Eftersom mange inddatafiler skal kunne vælges, har programmet en særlig åbningsdialog:
Åbningsdialogen tillader at filnavnene redigeres i hånden, at en fil vælges via filsøgeren ("Fil...") eller at nyligst brugte filer vælges i dropned-boksen. Hvis du åbner dialogen igen, findes de nuværende navne stadigvæk der. Den tredje inddatafil kræves ikke. Hvis feltet for "C" forbliver tomt, udføres kun en tovejs sammenligninganalyse.
Du kan også vælge en mappe med "Mappe...". Hvis en mappe angives for A, starter en mappesammenligning og sammenfletning. Hvis A angiver en fil, men B, C eller udskriften angiver en mappe, bruger KDiff3 filnavnet fra A i de angivne mapper.
Hvis "Sammenflet" er valgt, bliver linjen "Udskrift" redigerbar. Det kræves dog ikke at uddatafilens navn angives med det samme. Du kan også vente med dette til du gemmer.
Knappen "Indstil" viser indstillingsdialogen, så du kan indstille tilvalgene inden analysen udføres.

Indsæt eller slip inddata
Sommetider vil du sammenligne dele af en tekst som ikke er en egen fil. KDiff3 lader dig også indsætte tekst fra klippebordet i det inddatavindue for sammenligning som har fokus. Sammenligningsanalysen sker så med det samme. I åbningsdialogen behøver du så ikke at angive filer, men kun at lukke den via "Annullér".
Du kan også bruge træk og slip: Træk en fil fra en filhåndtering eller markeret tekst fra en editor og slip den på et inddatavindue til sammenligning.
Hvad er idéen? Sommetider indeholder en fil to lignende funktioner, men at kontrollere hvor ens de virkelig er bliver en stor anstrengelse hvis du først skal oprette to filer og derefter indlæse dem. Nu kan du helt enkelt kopiere, indsætte og sammenligne de relevante afsnit.
Bemærk: For øjeblikket kan du ikke trække noget fra KDiff3. Det understøttes kun at slippe inddata i sammenligningvinduet.
Advarsel: Visse editorer tolker stadigvæk træk og slip til et andet program som klip ud (i stedet for kopiér) og indsæt. De oprindelige data kan derfor gå tabt.

Tolk informationen i inddatavinduet
Længst oppe i hvert tekstvindue findes dets "informationslinje". Informationslinjerne i inddatavinduet indeholder bogstaverne "A", "B" eller "C", filnavnet og linjenummeret for den første synlige linje i vinduet. (Bemærk at vinduet "C" er valgfrit.) Hver informationslinje vises i sin egen farve. (Hvis søgestierne er for lange til at få plads, kan du flytte musen til informationslinjen, så vil et værktøjsvink vise hele navnet.)
De tre inddatavinduer tildeles bogstaverne "A", "B" og "C". "A" har blå farve, "B" har grøn farve og "C" magenta. (Det er standardfarverne, men de kan ændres via indstillingsmenuen.)
Når en forskel opdages viser farven hvilken inddatafil som adskiller sig. Når begge de øvrige inddatafiler adskiller sig, er farven som bruges for at udtrykke dette normalt rød ("Konfliktfarve" i indstillingerne). Dette farvelægningsmønster er særlig nyttigt i tilfældet med tre inddatafiler, som ses i næste afsnit (Sammenfletning).
Til venstre for hver tekst er "sammendragssøjlen". Hvis forskelle opstod på en linje, viser sammendragssøjlen tilsvarende farve. For en forskel som kun består af blanke tegn er sammendraget afkrydset. For programmeringssprog, hvor blanke tegn ikke er så vigtige er det nyttigt at se med et blik om noget af vigtighed er ændret. (For C/C++ er blanke tegn kun interessante inde i strenge, i kommentarer, for præprocessoren og i nogle meget esoteriske situationer.)
Den lodrette linje som adskiller sammendragssøjlen og teksten er afbrudt hvis inddatafilen ikke har nogen linjer der.
På højre side er en "oversigtssøjle" synlig til venstre for den lodrette rullebjælke. Den viser et komprimeret sammendrag af inddata "A". Alle forskelle og konflikter er synlige med et blik. Når kun to inddatavinduer bruges, ses alle forskelle i rødt her, eftersom alle forskelle også er konflikter. Et sort rektangel indrammer den synlige del af inddata. For meget lange inddatafiler, hvor antallet af inddatalinjer er større end højden på oversigten i billedpunkter, deler flere inddatalinjer en oversigtslinje. En konflikt har prioritet over enkle forskelle, som har prioritet over ingen ændringer, så ingen forskelle eller konflikter går tabte her. Ved at klikke på oversigtssøjlen vises den tilsvarende tekst.

Sammenfletning og editorvinduet for sammenfletning af uddata
Editorvinduet for sammenfletning af uddata (under inddatavinduet for sammenligning) har også en informationslinje længst oppe som viser "Udskrift", filnavnet og "[Ændret]" hvis du har redigeret noget. Oftest indeholder det en tekst fra de automatiske sammenfletningsfunktioner, men det indeholder også ofte konflikter.
!!! Gem er deaktiveret indtil alle konflikter er løst!!! (Brug knapperne "Gå til foregående/næste uløste konflikt" for at finde de tilbageværende konflikter.)
Med kun to filer er hver forskel også en konflikt, som skal løses manuelt.
Med tre inddatafiler behandles den første som basis, mens den anden og tredje inddatafil indeholder ændringer. Hvis kun inddata B eller C er ændret for en vis linje, men ikke begge vælges den ændrede kilde automatisk. Kun hvis B og C er ændret på samme linjer, detekterer værktøjet en konflikt som skal løses manuelt. Når B og C er ens, men ikke det samme som A, vælges C. 
Editorvinduet for sammenfletning af uddata har også en sammendragssøjle til venstre. Den viser bogstaverne for inddata fra hvilken linjen valgtes, eller ingenting hvis alle tre kilder var ens for linjen. Ved konflikter viser den et spørgsmølstegn "?" og linjen viser "< Konflikter ved sammenfletning >", alt med rødt. Eftersom det ville tage meget lang tid at løse konflikter linje for linje, grupperes linjer i grupper som har samme forskelle og konfliktkarakter. Konflikter med kun blanke tegn adskilles dog fra andre konflikter for at forbedre sammenfletningen af filer hvor indrykningen er ændret på mange linjer.
Når du klikker på sammendragssøjlen med venstre museknap i et af vinduerne, så markeres gruppen som hører til denne linje i alle vinduer og gruppens begyndelse vises. (Dette kan indebære et automatisk spring i positionen i vinduerne hvis gruppens begyndelse ikke ses.) Gruppen bliver så til den "aktuelle gruppe". Den markeres med "Baggrundsfarven for aktuelt sammenligninginterval" og en sort linje vises til venstre for teksten.
Bemærk knapperne for inddatavalg som indeholder bogstaverne "A", "B" og "C" i værktøjslinjen under menulinjen. Når du klikker på en af knapperne for inddatavalg, tilføjes linjerne fra disse inddata til sidst i den markerede gruppe, hvis gruppen ikke allerede indeholdt denne kilde. Ellers fjernes linjerne fra disse inddata.
Desuden kan du redigere en hvilken som helst linje. Sammendragssøjlen viser "m" for hvert linje der er ændret.
Sommetider, når en linje fjernes enten på grund af automatisk fletning eller ved redigering og ingen andre linjer er tilbage i gruppen, vises teksten <Ingen kildelinjer> på linjen. Det er kun en pladsmarkør for gruppen hvis du ændrer mening og vælger en kilde igen. Teksten ses ikke i gemte filer eller i nogen markeringer som du vil kopiere og indsætte.
Teksten "< Konflikter ved indfletning >" vises i klippebordet hvis du kopierer og indsætter noget tekst som indeholder en sådan linje. Men vær stadigvæk forsigtig med at gøre det.
Den normale sammenfletning vil starte med at løse simple konflikter automatisk. Men "Flet"-menu sørger for handlinger for andre almindelige behov. Hvis du skal vælge samme kilde for de fleste konflikter, så kan du vælge "A", "B" eller "C" overalt, eller kun for de tiloversblevne uløste konflikter, eller for uløste konflikter med blanke tegn. Hvis du ønsker at afgøre hver lille forskel selv, kan du "Sætte lille forskel til konflikt". Eller hvis du ønsker at vende tilbage de automatiske valg udført af KDiff3 så vælg "Løs simple konflikter automatisk". KDiff3 starter så sammenfletningen forfra. For handlinger der ændrer dine tidligere ændringer vil KDiff3 bede om bekræftelse før den går videre.
Bemærk: Når en af kilderne for uløste konflikter med blanke tegn vælges og tilvalgene "Ignorér tal" eller "Ignorér C/C++ kommentarer" bruges så bliver ændringer i tal eller kommentarer også behandlet som blanke tegn.

Navigering og redigering
Meget navigering gøres med rullebjælkerne og musen, men du kan også navigere med tastaturet. Hvis du klikker på et vindue kan du bruge markørtasterne venstre pil, højre pil, opad pil, nedad pil, Page Up, Page Down, Home, End, Ctrl+Home og Ctrl+End som du kan i andre programmer.
Du kan også bruge musehjulet til at rulle opad og nedad.
I editoren for fletning kan du også bruge andre taster til redigering. Du kan skifte mellem indsætnings- og erstatningstilstand med tasten Insert. (Normaltilstanden er at indsætte.)
Et klik med venstre museknap i en sammendragssøjle synkroniserer alle vinduer til at vise begyndelsen af samme gruppe linjer (som forklares i afsnittet Fletning).
Værktøjslinjen indeholder også syv navigeringsknapper som du kan bruge til at gå til nuværende/første/sidste forskel, til næste/foregående forskel (Ctrl+Nedad pil eller Ctrl+Opad pil), til næste/foregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller til næste/foregående uløste konflikt. Bemærk at for KDiff3 forbliver en "konflikt" som ikke automatisk løstes ved start af sammenfletningen altid en "konflikt" også selv om den er løst. Deraf nødvendigheden for at adskille "uløst konflikt".
Der er også en knap som hedder "Gå automatisk til næste uløste konflikt efter valg af kilde" (automatisk fortsættelse). Hvis du aktiverer dette, så går KDiff3 automatisk frem til næste uløste konflikt når en kilde vælges. Det kan hjælpe når du kun vil vælge en kilde. Når du behøver begge kilder, eller du vil redigere efter valget, bør du formodentlig lukke for dette. Inden KDiff3 fortsætter til næste uløste konflikt, vises effekten af valget en kort tid. Denne forsinkelse kan justeres i indstillingerne under Sammenlign og sammenflet. Du kan angive "Forsinkelse ved automatisk fortsættelse" i millisekunder mellem 0 og 2000. Vink: Træt af mange klik? Brug en kort forsinkelse og genvejstasterne Ctrl+1, Ctrl+2 eller Ctrl+3 for mange konflikter.

Markér, kopiér og indsæt
Inddatavinduerne viser ikke nogen markør, så markeringer skal gøres med musen, ved at klikke med venstre museknap på begyndelsen, holde museknappen nede og gå til slutningen, hvor museknappen slippes igen. Du kan også markere et ord ved at dobbeltklikke på det. I editoren for sammenfletningsuddata kan du også markere med tastaturet, ved at holde tasten "Shift" nede og navigere med piltasterne.
For at kopiere til klippebordet skal du trykke på knappen "Kopiér" (Ctrl+C eller Ctrl+Insert). Men der er et valg som hedder "Kopiér markering automatisk". Hvis det er markeret, kopieres hvad du end vælger med det samme, og du behøver aldrig eksplicit at kopiere. Men vær forsigtig når du bruger dette, eftersom klippebordets indhold kan ødelægges ved en fejl.
"Klip" (Ctrl+X eller Shift+Delete) kopierer til klippebordet og fjerner den markerede tekst, og "Indsæt" (Ctrl+V eller Shift+Insert) indsætter teksten fra klippebordet på markørens position eller over nuværende markering.

Gemmer
At gemme tillades kun når alle konflikter er løste. Hvis filen allerede findes og punktet "Sikkerhedskopiér filer" er markeret, ændres originalversionens navn med tilføjelse af filendelsen ".orig", og hvis en sådan fil allerede findes fjernes den. Når du afslutter eller starter en ny sammenligninganalyse og data ikke er gemt endnu, spørger KDiff3 om du vil gemme, annullere eller fortsætte uden at gemme. (KDiff3 fanger ingen signaler, så hvis du "dræber" KDiff3 går data tabt.)
Linjeslut gemmes følgende den normale metode i det underliggende operativsystem. For Unix slutter hver linje med et nylinjetegn "\n", mens hver linje for Windows-baserede system slutter med et returtegn og et nylinjetegn "\r\n". KDiff3 beholder ikke linjeslut for inddatafilerne, hvilket også betyder at du ikke skal bruge KDiff3 med binær filer.

Søg efter strenge
Du kan søge efter en streng i et hvilket som helst tekstvindue i KDiff3. Kommandoen "Søg..." (Ctrl+F) i menuen Redigér, viser en dialog som lader dig angive strengen at søge efter. Du kan også vælge de vinduer som skal gennemsøges. Søgning starter altid fra begyndelsen. Brug kommandoen "Søg igen" (F3) for at fortsætte til næste forekomst. Hvis du vælger at søge i flere vinduer, gennemsøges det første vindue fra begyndelsen til slutningen inden søgningen fortsætter fra begyndelsen i næste vindue, osv.

Tilvalg
Tilvalg og listen med de nyligste filer gemmes når du afslutter programmet, og indlæses igen når du starter det. (Menuen Opsætning -> Indstil KDiff3...)

Skrifttype
Vælg en skrifttype med fast bredde. (På visse systemer viser dialogen også skrifttyper med variabel bredde, men du bør ikke bruge dem.)
Kursiv stil for forskelle:	Hvis du markerer dette, vises tekstforskelle med kursiv versionen af den valgte skrifttype. Hvis skrifttypen ikke understøtter kursiv stil, gør dette ingenting.

Farver
Forgrundsfarve:	Oftest sort.
Baggrundsfarve:	Oftest hvid.
Baggrundsfarve for sammenligning:	Oftest lysegrå.
Farve A:	Oftest mørkeblå.
Farve B:	Oftest mørkegrøn.
Farve C:	Oftest mørk magenta.
Konfliktfarve:	Oftest rød.
Baggrundsfarve for nuværende område:	Oftest lysegul.
Baggrundsfarve for nuværende sammenligningsområde:	Oftest mørkegul.
For systemer der kun har 16 eller 256 farver er visse rene farver ikke tilgængelige. For sådanne systemer vælger knappen "Standard" rene farver.

Opsætning af editor
Tabulator indsætter mellemrum:	Hvis dette ikke er markeret, og du trykker på tabulatortasten, indsættes en tabulator, ellers indsættes et passende antal mellemrum.
Tabulatorbredde:	Kan justeres efter dine specielle behov. Normalværdien er 8.
Automatisk indrykning:	Når du trykker på Enter eller returtasten, bruges de foregående linjers indrykning for den nye linje.
Kopiere markering automatisk:	Hver markering kopieres med det samme til klippebordet når dette aktiveres, og du behøver ikke kopiere den eksplicit.
Brug lokalt tegnsæt:	For at vise specielle tegn. Prøv at ændre dette hvis nogle tegn i dit sprog ikke vises rigtigt.

Opsætning af sammenligning og fletning
Når filer sammenlignes forsøger KDiff3 først at matche linjer som er ens i alle inddata-filer. Det er kun under dette skridt at blanke tegn kan ignoreres. Det andet skridt sammenligner hver linje. Under dette skridt ignoreres blanke tegn ikke. Under sammenfletning ignoreres blanke tegn heller ikke.
Behold returtegn:	Visse editorer (på visse systemer) gemmer returtegn '\r' og nylinjetegn '\n' i slutningen af linjen, mens andre kun gemmer nylinjetegnet '\n'. Oftest ignorerer KDiff3 returtegnet, men så ser filer som ikke har samme størrelse ens ud ved sammenligning side om side. Når dette tilvalg er markeret, gøres returtegn synlige, men behandles som blanke tegn. Dette skal være slået fra under en sammenfletning. Normalværdien er fra.
Ignorér cifre:	Normalværdien er fra. Ciffertegn ('0'-'9','.', '-') ignoreres under første del af analysen når linjematchningen udføres. Forskellene for resultatet vises ikke desto mindre, men de behandles som blanke tegn.
Ignorér C/C++ kommentarer:	Normalværdien er fra. Ændringer i kommentarer vil blive behandlet ligesom ændringer i blanke tegn.
Konvertér til store bogstaver:	Normalværdien er fra. Konverterer inddata til store bogstaver under læsning. Altså er sammenligningen ikke versalfølsom. Vær forsigtig under sammenfletning, eftersom versalinformationen også går tabt i sammenfletningsresultatet.
Præprocessorkommando:	Når en fil læses, sendes den gennem denne eksterne kommando. Udskriften fra denne kommando vises i stedet for den oprindelige fil. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Brug dette for at fjerne forstyrrende dele af filen, eller for automatisk at korrigere indrykning, osv.
Præprocessorkommando for linjematchning:	Når en fil læses, sendes den via denne eksterne kommando. Hvis en præprocessorkommando (se ovenfor) også angives er udskriften fra præprocessoren input til kommandoen for linjematchning. Udskriften bruges kun under linjematchningsfasen af analysen. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Hvert inddatalinje skal have en tilsvarende uddatalinje.
Prøv hårdt:	Prøv hårdt at finde selv små fejl. (Normalt slået til.) Det er formodentlig effektivt for komplicerede og store filer, og langsomt for meget store filer.
Forsinkelse ved automatisk fortsættelse (ms):	I automatisk fortsættelsestilstand angiver denne indstilling hvor længe resultatet for gruppen skal vises inden der hoppes til næste uløste konflikt.
Blanke tegn 2/3-fil fletningsstandard:	Løs alle konflikter med blanke tegn ved at vælge den angivne fil. (Normalværdien er manuelt valg.) Nyttigt når blanke tegn virkelig ikke er vigtige i mange filer. Hvis du kun behøver dette af og til er det bedre at bruge "Vælg A/B/C til alle uløste konflikter med blanke tegn" i flet-menuen. Bemærk at hvis du aktiverer enten "Ignorér tal" eller "Ignorér C/C++ kommentarer" så anvendes dette auto-valg også på konflikter i tal eller kommentarer.

Mappefletning
Disse valgmulighederne har at gøre med gennemsøgning af mappen og håndtering af sammenfletningen: Se Mappesammenligning og sammenfletning for detaljer.
Der er endnu en valgmulighed her som også er relevant for at gemme enkelte filer:
Sikkerhedskopiér filer:	Når en fil gemmes og en ældre version allerede findes, ændres originalversionens navn med tilføjelse af filendelsen ".orig". Hvis en gammel sikkerhedskopi med filendelsen "orig" allerede findes fjernes den uden sikkerhedskopiering.

Diverse
(Disse tilvalg og handlinger er tilgængelige i menuerne eller værktøjslinjen.)
Vis linjenummer:	Du kan vælge om linjenummer skal vises for inddatafilerne.
Vis mellemrum og tabulatortegn i sammenligning:	Sommetider er synlige mellemrum og tabulatortegn forstyrrende. Du kan slå dette fra.
Vis blanke tegn:	Slå dette fra for at undertrykke al fremhævning af ændringer der kun er i blanke tegn i teksten eller overblikssøjlerne. (Bemærk at dette også gælder ændringer i tal eller kommentarer hvis tilvalgene "Ignorér tal" eller "Ignorér C/C++ kommentarer" er aktive.)
Vis vindue A/B/C:	Sommetider vil du bruge skærmpladsen bedre for lange linjer. Skjul vinduer som ikke er vigtige. (I vinduesmenuen.)
Skift opdelingsorientering:	Skift mellem sammenligningvinduer som vises ved siden af hinanden (A til venstre for B til venstre for C) eller ovenover hinanden (A over B over C). Det bør også hjælpe for lange linjer. (I vinduesmenuen.)
Start sammenfletning hurtigt:	Sommetider kigger du på forskelle, og bestemmer dig for at sammenflette. "Flet markerede filer" i menuen Flet virker også selvom du kun sammenligner to filer. Et enkelklik starter sammenfletningen og bruger filnavnet på den sidste inddatafil som standard udskriftsfilnavn. (Når dette bruges til at genstarte en sammenfletning, beholdes udskriftsfilnavnet.)

Indstil genvejstaster
For øjeblikket understøtter kun KDE-versionen indstillelige genvejstaster (Menuen Opsætning -> Indstil genveje...)