<para>&kompare; er et grafisk grænsefladeprogram som gør det muligt at vise og sammenflette forskelle mellem kildekodefiler. &kompare; kan bruges til at sammenligne forskelle mellem filer og indholdet i mapper. &kompare; understøtter en mængde forskellige sammenligningsformater, og sørger for mange tilvalg for at indstille informationsniveauet som vises.</para>
<para>Dette dokument beskriver &kompare; version &version;.</para>
<para>Når to eller flere personer arbejder med en fil og sender den frem og tilbage mellem hinanden, bliver det svært at se hvilke ændringer der er gjort i en ny version eller kopi af filen. At åbne den nye kopi og originalen side om side i programmet som bruges til at oprette den er en løsning, men det er arbejdsomt, tidsforbrugende og fejlbehæftet. Det er der et program til at vis forskelle, afkortet til diff på engelsk, er nyttigt.</para>
<para>Som man kan forvente sig, er et passende navn på et sådant program "diff". Det er sådan at programmet diff er installeret på de fleste &Linux;-baserede systemer, og bruges til nøjagtigt dette formål. Udviklere bruger ofte diff som et kommandolinjeværktøj for at vise forskelle mellem versioner af en kildekodefil. Imidlertid er brugen af diff ikke begrænset til at vise forskelle i kildekodefiler, det kan også bruges for mange andre tekstbaserede filtyper.</para>
<para>At bruge diff på kommandolinjen kan være forvirrende. At lære sig diff-kommandoens syntaks og tolke uddata kan forvilde de fleste. Det er her &kompare; rykker ind. Det sørger for en grafisk grænseflade for diff-programmet som viser kilde- og målfiler side ved side med alle forskelle automatisk farvelagte. Fra dette udgangspunkt kan ændringer i en fil anvendes på den andre filen på en kontrolleret og styrbar måde. Alle ændringer behøver ikke at blive anvendt, og hvis du anvender en ændring kan den altid 'fortrydes'. Når alle nødvendige ændringer er anvendt, kan de gemmes og vises som sædvanligt i originalprogrammet som blev brugt til at oprette filen.</para>
<para>Udover at vise forskelle mellem en kilde- og målfil, kan &kompare; bruges til at oprette og vise en særlig sammenligningfil som kaldes 'diff'. Denne fil samler forskellene mellem de to kilder i en enkelt fil som kan bruges til at vise og anvende ændringer i alle andre kopier af filen. Hvis to personer for eksempel redigerer et dokument, og den første vil udføre ændringer og kun sende ændringerne til den anden. Normalt skulle den første person så sende en fuldstændig kopi af det ændrede dokument til den anden, som så skulle sammenligne det ændrede dokument side om side med den uforandrede version. Processen for dette er stort set som vi beskrev i foregående paragraf. Med &kompare; ville den første person først lave en lokal kopi af filen som skal ændres, derefter udføre ændringerne og sammenligne originalen og den ændrede kopi. En sammenligningfil som kun indholder de ændringer som er gjort kan nu laves med &kompare;. Den kan sendes til den anden person i stedet for hele filen med ændringerne.</para>
<para>Ved at bruge &kompare; kan den anden person kigge på sammenligningsfilen, sammenligne den med den lokale kopi af dokumentet og anvende ændringerne som er gjort af den første personen. Så kan processen fortsætte for mange dokumentversioner, hvor hver person laver ændringer, og laver sammenligningfiler som distribueres og anvendes. Denne proces kaldes ofte "patching" på engelsk, et udtryk som kommer fra programmet "patch", som er et andet kommandolinjeværktøj særligt konstrueret med det formål at anvende sammenligningfiler.</para>
<para>Det sker sommetider at flere personer redigerer en fil samtidig. I dette tilfælde er det sandsynligt at de laver ændringer i dokumentet på nøjagtig samme linje. Dette forårsager et problem, eftersom de, uden forsigtighed, kunne ske at de overskriver hinandens arbejde når sammenligningfiler anvendes. Heldigvis tog udviklerne af programmerne diff og patch hensyn til dette, så værktøjerne tillader ikke at sådanne ændringer anvendes uden manuelt indgreb. Når denne tilstand er opstået, kaldes det for en "konflikt". &kompare; viser konflikter, så du kan løse dem manuelt, og bestemme hvilke ændringer som skal anvendes på hvilke filer.</para>
<para>&kompare; er også et udmærket program til sammenligning af filændringer på mappeniveau. Når det bruges til at sammenligne mapper, undersøger &kompare; undermapper og deres filindhold rekursivt for at finde forskelle. I dette brugertilfælde åbnes automatisk alle filer hvor forskelle findes og listes af &kompare;, med mulighed for nemt navigere mellem de forskellige filer.</para>
<para>En genvej for at starte &kompare; findes i K-menuen under programmering: <menuchoice><guimenu>Programmering</guimenu> <guimenuitem>Kompare</guimenuitem></menuchoice>.</para>
<para>Når &kompare; startes, er det første som sker at en dialog vises hvor man kan vælge filer som skal sammenlignes. Særskilte indstillinger af sammenligningsegenskaber og dets udseende kan også vælges. Vælg en kilde og et mål at sammenligne i filformularen. Det kan være hvilke som helst to filer, mapper, eller en URL og en fil. Når kilden og målet er valgt, klik så på knappen <guibutton>Sammenlign</guibutton>.</para>
<para>Så snart &kompare; har fundet forskellene, vises hovedgrænsefladen. Når to filer eller en URL og en fil sammenlignes, tager processen kun nogle få sekunder. Når mapper med mange undermapper og filer sammenlignes, kan processen dog tage en stund.</para>
<para>For en forklaring af tilgængelige tilvalg fra diff og udseendefanebladet, se <xref linkend="configure-preferences"/>.</para>
<para>Værktøjslinjen i &kompare; indholder genveje for de oftest brugte sammenlignings- og sammenfletningshandlinger. Værktøjslinjens orientering, tekstplacering, ikonstørrelse og hvilke ikoner som vises kan indstilles fra værktøjslinjens sammenhængsafhængige menu, som der er adgang til ved at højreklikke på værktøjslinjen med musen. Værktøjslinjens sammenhængsafhængige menu gør det også muligt at skjule værktøjslinjen. Hvis værktøjslinjen er skjult, og du vil vise den, vælges <menuchoice><guimenu>Opsætning</guimenu> <guimenuitem>Vis værktøjslinje</guimenuitem></menuchoice>.</para>
<para>Ruderne med kilde- og målmappe viser mapperne hvor de sammenlignede filer findes. Når mange undermapper indgår i sammenligningen, vises det første dokument i en mappe som har en forskel mellem kilde og mål, når mappen vælges.</para>
<para>Ruderne med kilde- og målfil viser filerne hvor en forskel er fundet for kilde- og målmapperne som for øjeblikket er valgte. Når en mappe har flere dokumenter som indeholder forskelle, listes alle dokumenter med forskelle. Det valgte dokument vises.</para>
<para>Ruderne med kilde- og mållinjeændringer opsummerer ændringerne som blev fundet mellem nuværende kilde- og måldokument. Ved at markere en indgang i feltet farvelægges den og forskellen markeres. Dette er en nyttig måde at navigere og undersøge lange dokumenter med mange forskelle.</para>
<para>Kilde- og målvisningen er hovedarbejdsfladen i &kompare;. Indholdet og farvelagte forskelle mellem kilde- og målfilerne som for øjeblikket er valgte vises her med linjenummer.</para>
<para><guilabel>Tekstvisningen</guilabel> vises normalt ikke. Den kan åbnes ved at vælge <menuchoice><guimenu>Opsætning</guimenu> <guimenuitem>Vis tekstvisning</guimenuitem></menuchoice>.</para>
<para>Statuslinjen indholder en sammenfatning af nuværende kilde- og målfil eller mappe som sammenlignes. Statuslinjen rapporterer også antal ændringer som er fundet i nuværende dokument, og tæller de forskelle som er anvendt. Desuden viser statuslinjen det totale antal dokumenter som indeholder forskelle, og nuværende dokument som er valgt af disse. En sammenligning som gøres mellem to mapper kan eksempelvis returnere 1890 filer med forskelle. Dokumentet som for øjeblikket er valgt er nummer 18 af 1890.</para>
<para>&kompare; viser kilde- og målfilen med lige store dele af hovedgrænsefladens arbejdsflade. Visningsområdet sørger for nogle funktioner som hjælper til med at optimere brugen af skærmfladen når forskelle vises, inklusive:</para>
<listitem><para>Den mest åbenbare funktion er at der sørges for rullebjælker både til højre og længst nede i visningsområdet. Ved at bruge rullebjælkerne er det muligt hurtigt at flytte sig ved sammenligningen.</para></listitem>
<listitem><para>Det lodrette område mellem kilde-og målvisningen gør det ikke kun muligt nemt at se begyndelsen og slutningen af linjer i hver rude, men er desuden også et greb som gør det muligt at justere den procentuelle andel som bruges af kilde- og målvisningen som visningsfeltet består af. For at øge feltets størrelse for en af visningerne, holdes musen over grebet, tryk så museknappen ned og træk til venstre eller højre. Naturligvis mindskes tilgængelig flade for den modsatte felt når fladen for en rude øges, indenfor visningsfeltets område.</para></listitem>
<listitem><para>Hovedarbejdsfladen kan frigøres fra hovedgrænsefladen ved at klikke på knappen <guibutton></guibutton> længst oppe til højre i hovedarbejdsfladens rude. Dette åbner hovedarbejdsfladen i et eget vindue, hvilket gør det muligt at maksimere det og ændre dets størrelse på billedskærmen.</para></listitem>
<para>Statuslinjen i visningsfeltet kan slås fra eller til ved at vælge <menuchoice><guimenu>Opsætning</guimenu> <guimenuitem>Vis/Skjul statuslinje</guimenuitem></menuchoice>.</para>
<para>Sommetider kan det være nyttigt at betragte filen som forskelle skal anvendes på som kilden. Hvis for eksempel to ændrede versioner af en fil sammenlignes, og det opdages at en fil har mange flere ændringer end den anden. Filen med flest ændringer ville være mere passende som kilde, eftersom færre ændringer så skal anvendes.</para>
<para>Hvis dette er tilfældet, vælges <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Skift kilde og mål</guimenuitem></menuchoice>. Det skifter filer som vises i alle ruder i &kompare;.</para>
<para>Vælg <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Vis statistik</guimenuitem></menuchoice>, for at få en hurtig oversigt af forskellene. Dette viser dialogen <guilabel>Sammenligningstatistik</guilabel>. Følgende information tilvejebringes:</para>
<para>Antal blokke fundet i sammenligningen.</para>
<para>En blok er et antal linjer som er markeret som forskellige i kilde og mål, og kan indholde sammenhængslinjer afhængig af værdien af sammenligningformatet <guilabel>Sammenhæng</guilabel> (se <xref linkend="diff-format"/>).</para></listitem>
<listitem><para>Det egentlige antal forskelle som er fundet, ikke antal blokke. En blok kan indeholde en eller flere forskelle når de ændrede linjers område og sammenhængslinjer for to eller flere ændringer overlapper.</para></listitem>
<para>Når en forskel er markeret, anses den for at være <quote>i fokus</quote> og vises med en stærkere farve end forskelle som ikke er markerede.</para>
<para>Når en sammenligning finder mange forskelle, er en af de bedste måder at granske dem at gå gennem forskellene i en logisk rækkefølge, oftest oppefra og nedad.</para>
<para>Normalt markerer &kompare; den første forskel som er fundet i en sammenligning. Ved at vælge <menuchoice><guimenu>Forskel</guimenu> <guimenuitem> Næste forskel</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Nedad</keycap></keycombo>) får forskellen som følger den nuværende fokus. For at markere forskellen inden den nuværende, vælges <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Foregående forskel</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Op</keycap></keycombo>).</para>
<para>På denne måde er det muligt at gå gennem forskellene på en ordnet måde, og anvende eller fortryde forskelle under granskningen.</para>
<para>Når en sammenligning gøres på mappeniveau, kan mange filer findes med forskelle. En fuldstændig liste af sammenlignede filer hvor forskelle er fundet, findes i felterne <quote>Kilde- og målmapper</quote> og <quote>Kilde- og målfiler</quote>. &kompare; viser imidlertid forskelle mellem kilde og mål med en sammenligning af gangen.</para>
<para>For at skifte mellem dokumenter i dette scenario, er følgende tilvalg tilgængelige:</para>
<listitem><para>Vælg feltet <quote>Kilde- og målmapper</quote> for at vise filforskelle som er fundet i feltet <quote>Kilde- og målfiler</quote>, vælg derefter en fil.</para></listitem>
<listitem><para>Vælg <menuchoice><guimenu>Forskel</guimenu><guimenuitem>Foregående fil</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Page Up</keycap></keycombo>) eller <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Næste fil</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Page Down</keycap></keycombo>) for at vise foregående eller næste fil med forskelle som er fundet i feltet <quote>Kilde- og målfiler</quote>.</para>
<para>&kompare; gør opgaven at anvende eller fortryde forskelle så enkel som blot at kun pege og klikke. Flere handlinger for at anvende eller fortryde kan udføres med en forskel eftersom alle handlinger udføres i hukommelsen og skrives ikke i filen på disken førend der gemmes.</para>
<para>Klik på den farvelagte forskel, vælg derefter <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Anvend forskel</guimenuitem></menuchoice> (<keycombo><keycap>Mellemrum</keycap></keycombo>) for at anvende en forskel.</para>
<para>Klik på den farvelagte forskel som tidligere blev anvendt, vælg derefter <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Fortryd anvendt forskel</guimenuitem></menuchoice> (<keycombo><keycap>Backspace</keycap></keycombo>) for at fortryde en anvendt forskel.</para>
<para>Efter at have gransket forskelle mellem filer og set at alle er acceptable, er det muligt at anvende alle med en enkelt handling ved at vælge <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Anvend alle</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>A</keycap></keycombo>).</para>
<para>Vælg <menuchoice><guimenu>Forskel</guimenu> <guimenuitem>Fortryd anvend alle</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>U</keycap></keycombo>) for forskelle som er anvendt.</para>
<para>Når forskelle er anvendt kan de gemmes ved at vælge <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Gem</guimenuitem></menuchoice> eller <menuchoice><guimenu>Fil</guimenu><guimenuitem>Gem alle...</guimenuitem></menuchoice>.</para>
<para>Anvendte forskelle gemmes i både kilde- og målfilen.</para>
<para>Sammenligningsfiler indholder kun ændringerne som er gjort mellem filer, eller et sæt filer i et mappesystem, og har mulighed for at indeholde et antal sammenhængslinjer før og efter hver ændret linje. Summen af en linjeændring og dets sammenhængslinjer kaldes en blok. En sammenligningfil kan derfor indeholde flere blokke fra en eller flere filer. Når sammenhængslinjerne for en eller flere blokke overlapper, anses de for at være en enkelt blok. Sammenligningfiler kan bruges til at:</para>
<para>For at oprette en sammenligningfil skal en sammenligning vises i &kompare;. Under antagelse af at dette er tilfældet, vælges <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Gem .diff</guimenuitem></menuchoice>. Det viser dialogen <guilabel>Sammenligningstilvalg</guilabel> (se <xref linkend="diff-settings"/> for mere information om sammenligningformater og tilvalg). Når disse tilvalg er indstillet, klik på knappen <guibutton>Gem</guibutton> og gem sammenligningen i en fil med filendelsen <filename class="extension">.diff</filename>.</para>
<para>Det er muligt at vise indholdet i en sammenligningsfil i &kompare; ved at åbne sammenligningfilen med <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Åbn sammenligning...</guimenuitem></menuchoice></para>
<para>Når en sammenligningsfil betragtes, vises blokken mellem kilde- og målfilen. Husk at kun blokken vises, ingen uforandrede linjer vises. I visse tilfælde skabes en sammenligningsfil uden nogen sammenhængslinjer. I disse tilfælde vises kun de ændrede linjer.</para>
<para>Når en sammenligningfil indholder blokke fra flere filer, viser &kompare; en blok fra hver fil af gangen, og du kan skifte mellem filer som om de var rigtige filer, også selvom denne information kun sørges for af sammenligningfilens indhold.</para>
<title>Anvend forskelle fra en sammenligningfil</title>
<para>Når forskelle i en sammenligningfil betragtes, er det muligt at anvende forskelle som du ville gøre det når kilde- og målfiler sammenlignes (se <xref linkend="merging-differences"/>).</para>
<title>Bland en &URL; med en sammenligning</title>
<para>I tilfældet hvor en sammenligningfil sørges for er det muligt at sammenligne blokken i sammenligningsfilen med en fil eller mappe. For at gøre dette, vælges <menuchoice><guimenu>Fil</guimenu> <guimenuitem>Bland URL med sammenligning...</guimenuitem></menuchoice>. Indtast derefter søgestier for <guilabel>Fil eller mappe</guilabel> og <guilabel>Sammenligningsuddata</guilabel>.</para>
<para>Når forskelle mellem en kildefil og en sammenligningfil betragtes, er det muligt at anvende forskelle som du ville gøre det når kilde- og målfiler sammenlignes (se <xref linkend="merging-differences"/>).</para>
<para>&kompare; gør det muligt for brugere at indstille visningsindstillinger for formatering af forskelle i hovedgrænsefladen, og indstille egenskaber for opførslen af diff-programmet. Dialogen <guilabel>Opsætning</guilabel> kan man komme til ved at vælge <menuchoice><guimenu>Opsætning</guimenu> <guisubmenu>Indstil &kompare;...</guisubmenu></menuchoice>.</para>
<para>Vælg punktet <guilabel>Vis</guilabel> for at indstille udseendeindstillinger (se <xref linkend="view-settings"/>).</para>
<para>Vælg punktet <guilabel>Sammenlign</guilabel> for at indstille programegenskaber for diff-programmet (se <xref linkend="diff-settings"/>).</para>
<para>Siden <guimenu>Vis</guimenu> i dialogen <guilabel>Opsætning</guilabel> viser fanebladene <guilabel>Udseende</guilabel> og <guilabel>Skrifttype</guilabel>.</para>
<para>Fanebladet <guilabel>Udseende</guilabel> sørger for indstillinger for at håndtere <guilabel>Farver</guilabel> som bruges til at angive forskelle i hovedgrænsefladen, opførslen af <guilabel>Mushjulet</guilabel> når det bevæges opad og nedad, og hvordan konverteringen <guilabel>Tabulatortegn til mellemrum</guilabel> udføres.</para>
<para>Menuen <guimenu>Sammenlign</guimenu> i dialogen <guilabel>Opsætning</guilabel> viser fanebladene <guilabel>Sammenlign</guilabel>, <guimenu>Format</guimenu>, <guilabel>Tilvalg</guilabel> og <guilabel>Undtag</guilabel>. Disse formularer kan bruges til at indstille egenskaber for opførslen af diff-programmet.</para>
<para>Programmet diff kan oprette kommandoer som styrer teksteditoren ed sådan at den første fil ændres til den anden. Historisk var dette det eneste uddataformatet som duede til automatisk at redigere en fil til en anden. Efter ankomsten af <application>patch</application> bruges dette næsten aldrig.</para>
<para>Formatet RCS er særligt designet til brug af <acronym>RCS</acronym> (Revision Control System). Ligesom ed-formatet, bruges dette format sjældent efter programmet <application>patch</application> blev introduceret.</para>
<para>Det forenede format er en variant af sammenhængsformatet. Det anses for at være bedre end sammenhængsformatet på grund af at uddata er mere kompakt end sammenhængsformatet, eftersom unødige sammenhængslinjer udelades.</para>
<para>Brug formatet Side om side som viser filer listede i to søjler med et mellemrum mellem dem. Dette er kun tilgængeligt i dialogen <guilabel>Sammenligningstilvalg</guilabel> (se <xref linkend="creating-a-diff"/>).</para>
<para>Når en sammenligning med sammenhængsformat eller forenet format udføres, bruges denne parameter til at styre antal sammenhængslinjer som inkluderes.</para>
<term><guilabel>Ekspandér tabulator-tegn til mellemrum ved uddata</guilabel></term>
<listitem><para>Hvis markeret, konverterer sammenligninguddata tabulatortegn til det antal mellemrum som er defineret af tilvalget <guimenu>Tabulatortegn til mellemrum</guimenu> på siden <guilabel>Vis</guilabel> i dialogen <guilabel>Opsætning</guilabel>.</para>
<term><guilabel>Ignorér ændringer i blanke tegn</guilabel></term>
<listitem><para>Blanke tegn før, efter og mellem linjer kan ændres afhængig af forskellige editorer. Når dette er markeret ignoreres sådanne ændringer.</para></listitem>