<para>&kompare; är ett grafiskt gränssnittsprogram som gör det möjligt att visa och sammanfoga skillnader mellan källkodsfiler. &kompare; kan användas för att jämföra skillnader mellan filer och innehållet i kataloger. &kompare; stöder en mängd olika jämförelseformat, och tillhandahåller många alternativ för att anpassa informationsnivån som visas.</para>
<para>Detta dokument beskriver &kompare; version &version;.</para>
<para>Om två eller flera personer arbetar med en fil och skickar den fram och tillbaka mellan varandra, blir det svårt att se vilka ändringar som har gjorts i en ny version eller kopia av filen. Att öppna den nya kopian och originalet sida vid sida i programmet som används för att skapa det är en lösning, men det är arbetsamt, tidsödande, och felbenäget. Det är då ett program för att visa skillnader, avkortat till diff på engelska, är användbart.</para>
<para>Som man kan vänta sig, är ett lämpligt namn på ett sådant program "diff". Det råkar vara så att programmet diff är installerat på de flesta &Linux;-baserade system, och används för exakt detta syfte. Utvecklare använder ofta diff som ett kommandoradsverktyg för att visa skillnader mellan versioner av en källkodsfil. Dock är inte användningen av diff begränsat till att visa skillnader i källkodsfiler, det kan också användas för många andra textbaserade filtyper.</para>
<para>Att använda diff på kommandoraden kan vara förvirrande. Att lära sig diff-kommandots syntax och dechiffrera utmatningen kan förvilla de flesta. Det är då &kompare; rycker in. Det tillhandahåller ett grafiskt gränssnitt för diff-programmet som visar käll- och målfiler sida vid sida med alla skillnader automatiskt färglagda. Från den utgångspunkten kan ändringar i en fil appliceras i den andra filen på ett kontrollerat och styrbart sätt. Alla ändringar behöver inte appliceras, och om du applicerar en ändring kan den alltid 'ångras'. När alla nödvändiga ändringar har applicerats, kan de sparas och visas som vanligt i originalprogrammet som användes för att skapa filen.</para>
<para>Förutom att visa skillnader mellan en käll- och målfil, kan &kompare; användas för att skapa och visa en särskild jämförelsefil som kallas 'diff'. Filen samlar skillnaderna mellan de två källorna i en enda fil som kan användas för att visa och applicera ändringar i alla andra kopior av filen. Om två personer till exempel redigerar ett dokument, och den första vill göra ändringar och bara skicka ändringarna till den andra. Normalt skulle den första personen då skicka en fullständig kopia av det ändrade dokumentet till den andra, som då skulle behöva jämföra det ändrade dokumentet sida vid sida med den oförändrade versionen. Processen för detta är i stort sett som vi beskrivit i föregående stycke. Med &kompare; skulle den första personen först göra en lokal kopia av filen som ska ändras, därefter göra ändringarna och jämföra originalet och den ändrade kopian. En jämförelsefil som bara innehåller ändringarna som gjorts kan nu skapas med &kompare;. Den kan skickas till den andra personen istället för hela filen med ändringarna.</para>
<para>Genom att använda &kompare; kan den andra personen titta på jämförelsefilen, jämföra den med den lokala kopian av dokumentet och applicera ändringarna som gjorts av den första personen. Så kan processen fortsätta för många dokumentversioner, där varje person gör ändringar, och skapar jämförelsefiler som distribueras och appliceras. Processen kallas ofta "patching" på engelska, ett uttryck som kommer från programmet "patch", som är ett annat kommandoradsverktyg särskilt konstruerat med syftet att applicera jämförelsefiler.</para>
<para>Det inträffar ibland att flera personer redigerar en fil samtidigt. I detta fall är det troligt att de gör ändringar i dokumentet på exakt samma rad. Det orsakar ett problem, eftersom det, utan försiktighet, skulle gå att skriva över varandras arbete när jämförelsefiler appliceras. Som tur är tog utvecklarna av programmen diff och patch hänsyn till det, så verktygen tillåter inte att sådana ändringar appliceras utan manuellt ingripande. När detta tillstånd har uppstått, kallas det för en "konflikt". &kompare; visar konflikter, så att du kan lösa upp dem manuellt, och bestämma vilka ändringar som ska appliceras i vilka filer.</para>
<para>&kompare; är också ett utmärkt program för jämförelse av filändringar på katalognivå. När det används för att jämföra kataloger, undersöker &kompare; underkataloger och deras filinnehåll rekursivt för att hitta skillnader. I detta användarfall öppnas automatiskt alla filer där skillnader hittas och listas av &kompare;, med möjlighet att enkelt navigera mellan de olika filerna.</para>
<para>En genväg för att starta &kompare; finns i K-menyn under programmering: <menuchoice><guimenu>Programmering</guimenu> <guimenuitem>Kompare</guimenuitem></menuchoice>.</para>
<para>När &kompare; startas, är det första som händer att en dialogruta visas där man kan välja filer som ska jämföras. Särskilda inställningar av jämförelsens egenskaper och dess utseende kan också väljas. Välj en källa och ett mål att jämföra i filformuläret. Det kan vara vilka två filer som helst, kataloger, eller en webbadress och en fil. När källan och målet väl är valda, klicka på knappen <guibutton>Jämför</guibutton>.</para>
<para>Så fort &kompare; har hittat skillnaderna, visas huvudgränssnittet. När två filer eller en webbadress och en fil jämförs, tar processen bara några få sekunder. När kataloger med många underkataloger och filer jämförs, kan processen dock ta en stund.</para>
<para>För en förklaring av tillgängliga alternativ från diff och utseendefliken, se <xref linkend="configure-preferences"/>.</para>
<para>&kompare; tillhandahåller ett menystyrt gränssnitt. Förklaring av menyerna och deras alternativ tillhandahålls i <xref linkend="command-reference"/>.</para>
<para>Verktygsraden i &kompare; innehåller genvägar för de oftast använda jämförelse- och sammanfogningsåtgärderna. Verktygsradens orientering, textplacering, ikonstorlek och vilka ikoner som visas kan anpassas från verktygsradens sammanhangsberoende meny, som kan kommas åt genom att högerklicka på verktygsraden med musen. Verktygsradens sammanhangsberoende meny gör det också möjligt att dölja verktygsraden. Om verktygsraden är dold, och du vill visa den, välj <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Visa verktygsrad</guimenuitem></menuchoice>.</para>
<para>Rutorna med käll- och målkatalog visar katalogerna där de jämförda filerna finns. När många underkataloger ingår i jämförelsen, visas det första dokumentet i en katalog som har en skillnad mellan källa och mål, när katalogen väljes.</para>
<para>Rutorna med käll- och målfil visar filerna där en skillnad hittades för käll- och målkatalogerna som för närvarande är valda. När en katalog har flera dokument som innehåller skillnader, listas alla dokument med skillnader. Det valda dokumentet visas.</para>
<para>Rutorna med käll- och målradändringar summerar ändringarna som hittades mellan nuvarande käll- och måldokument. Genom att markera en post i rutan färgas och markeras skillnaden. Det är ett användbart sätt att navigera och inspektera långa dokument med många skillnader.</para>
<para>Käll- och målvyn är huvudarbetsytan i &kompare;. Innehållet och färglagda skillnader mellan käll- och målfilerna som för närvarande är valda visas här med radnummer.</para>
<para><guilabel>Textvyn</guilabel> visas normalt inte. Den kan öppnas genom att välja <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Visa textvy</guimenuitem></menuchoice>.</para>
<para>Statusraden innehåller en sammanfattning av nuvarande käll- och målfil eller katalog som jämförs. Statusraden rapporterar också antal ändringar som hittats i nuvarande dokument, och räknar skillnader som har applicerats. Dessutom visar statusraden det totala antalet dokument som innehåller skillnader, och nuvarande dokument som är valt av dessa. En jämförelse som görs mellan två kataloger kan exempelvis returnera 1890 filer med skillnader. Dokumentet som för närvarande är valt är nummer 18 av 1890.</para>
<para>&kompare; visar käll- och målfilen med lika stor del av huvudgränssnittets arbetsyta. Vyområdet tillhandahåller några funktioner som hjälper till att optimera användningen av skärmytan när skillnader visas, inklusive:</para>
<listitem><para>Den mest uppenbara funktionen är att rullningslister tillhandahålls både till höger och längst ner i vyområdet. Genom att använda rullningslisterna är det möjligt att snabbt flytta sig genom jämförelsen.</para></listitem>
<listitem><para>Det vertikala området mellan käll-och målvyn gör det inte bara möjligt att enkelt se början och slutet av rader i varje ruta, utan är också ett grepp som gör det möjligt att justera den procentuella andelen som används av käll- och målvyn som vyrutan består av. För att öka rutans storlek för en av vyerna, håll musen över greppet, tryck ner musknappen och dra åt vänster eller höger. Naturligtvis minskar tillgänglig yta för den motsatta rutan när ytan för en ruta ökas, inuti vyrutans område.</para></listitem>
<listitem><para>Huvudarbetsytan kan kopplas ifrån huvudgränssnittet genom att klicka på knappen <guibutton></guibutton> längst upp till höger i huvudarbetsytans ruta. Det öppnar huvudarbetsytan i ett eget fönster, vilket gör det möjligt att maximera det och ändra dess storlek på bildskärmen.</para></listitem>
<para>Statusraden i vyrutan kan stängas av eller sättas på genom att välja <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Visa/Dölj statusrad</guimenuitem></menuchoice>.</para>
<para>Ibland kan det vara användbart att betrakta filen som skillnader ska appliceras i som källan. Om till exempel två ändrade versioner av en fil jämförs, och det upptäcks att en fil har många fler ändringar än den andra. Filen med flest ändringar vore lämpligare som källa, eftersom färre ändringar då måste appliceras.</para>
<para>Om det är fallet, välj <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Byt källa och mål</guimenuitem></menuchoice>. Det byter filer som visas i alla rutor i &kompare;.</para>
<para>Välj <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Visa statistik</guimenuitem></menuchoice>, för att få en snabb översikt av skillnaderna. Det visar dialogrutan <guilabel>Jämförelsestatistik</guilabel>. Följande information tillhandahålls:</para>
<para>Ett block är ett antal rader som har markerats som olika i källa och mål, och kan innehålla sammanhangsrader beroende på värdet hos jämförelseformatet <guilabel>Sammanhang</guilabel> (se <xref linkend="diff-format"/>).</para></listitem>
<listitem><para>Det verkliga antal skillnader som hittats, inte antal block. Ett block kan innehålla en eller flera skillnader när de ändrade radernas intervall och sammanhangsrader för två eller flera ändringar överlappar.</para></listitem>
<para>När en jämförelse hittar många skillnader, är ett av de bästa sätten att granska dem att gå igenom skillnaderna i en logisk ordning, oftast uppifrån och neråt.</para>
<para>Normalt markerar &kompare; den första skillnaden som hittats i en jämförelse. Genom att välja <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem> Nästa skillnad</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Ner</keycap></keycombo>) får skillnaden som följer den nuvarande fokus. För att markera skillnaden innan den nuvarande, välj <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Föregående skillnad</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Upp</keycap></keycombo>).</para>
<para>På så sätt är det möjligt att gå igenom skillnaderna på ett ordnat sätt, och applicera eller ångra skillnader under granskningen.</para>
<para>När en jämförelse görs på katalognivå, kan många filer hittas med skillnader. En fullständig lista av jämförda filer där skillnader hittades, tillhandahålls i rutorna <quote>Käll- och målkataloger</quote> och <quote>Käll- och målfiler</quote>. &kompare; visar dock skillnader mellan källa och mål med en jämförelse åt gången.</para>
<para>För att byta mellan dokument i detta scenario, är följande alternativ tillgängliga:</para>
<listitem><para>Välj rutan <quote>Käll- och målkataloger</quote> för att visa filskillnaders som hittades i rutan <quote>Käll- och målfiler</quote>, välj därefter en fil.</para></listitem>
<listitem><para>Välj <menuchoice><guimenu>Skillnad</guimenu><guimenuitem>Föregående fil</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Page Up</keycap></keycombo>) eller <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Nästa fil</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>Page Down</keycap></keycombo>) för att visa föregående eller nästa fil med skillnader som hittats i rutan <quote>Käll- och målfiler</quote>.</para>
<para>&kompare; gör uppgiften att applicera eller ångra skillnader så enkel som att bara peka och klicka. Flera åtgärder för att applicera eller ångra kan utföras med en skillnad eftersom alla åtgärder utförs i minnet och skrivs inte i filen på disk förrän spara utförs.</para>
<para>Klicka på den färglagda skillnaden, välj därefter <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Applicera skillnad</guimenuitem></menuchoice> (<keycombo><keycap>Mellanslag</keycap></keycombo>) för att applicera en skillnad.</para>
<para>Klicka på den färglagda skillnaden som tidigare applicerades, välj därefter <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Ångra applicerad skillnad</guimenuitem></menuchoice> (<keycombo><keycap>Backsteg</keycap></keycombo>) för att ångra en applicerad skillnad.</para>
<para>Efter att ha granskat skillnader mellan filer och sett att alla är acceptabla, är det möjligt att applicera alla med en enda åtgärd genom att välja <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Applicera alla</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>A</keycap></keycombo>).</para>
<para>Välj <menuchoice><guimenu>Skillnad</guimenu> <guimenuitem>Ångra applicera alla</guimenuitem></menuchoice> (<keycombo action="simul">&Ctrl;<keycap>U</keycap></keycombo>) för skillnader som har applicerats.</para>
<para>När skillnader väl har applicerats kan de sparas genom att välja <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Spara</guimenuitem></menuchoice> eller <menuchoice><guimenu>Arkiv</guimenu><guimenuitem>Spara alla...</guimenuitem></menuchoice>.</para>
<para>Applicerade skillnader sparas i både käll- och målfilen.</para>
<para>Jämförelsefiler innehåller bara ändringarna som gjorts mellan filer, eller en uppsättning filer i ett katalogsystem, och har möjlighet att innehålla ett antal sammanhangsrader före och efter varje ändrad rad. Summan av en radändring och dess sammanhangsrader kallas ett block. En jämförelsefil kan därför innehålla flera block från en eller flera filer. När sammanhangsraderna för ett eller flera block överlappar, anses de vara ett enda block. Jämförelsefiler kan användas för att:</para>
<para>För att skapa en jämförelsefil måste en jämförelse visas i &kompare;. Med antagandet att det är fallet, välj <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Spara .diff</guimenuitem></menuchoice>. Det visar dialogrutan <guilabel>Jämförelsealternativ</guilabel> (se <xref linkend="diff-settings"/> för mer information om jämförelseformat och alternativ). När dessa alternativ har ställts in, klicka på knappen <guibutton>Spara</guibutton> och spara jämförelsen i en fil med filändelsen <filename class="extension">.diff</filename>.</para>
<para>Det är möjligt att visa innehållet i en jämförelsefil i &kompare; genom att öppna jämförelsefilen med <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Öppna jämförelse...</guimenuitem></menuchoice></para>
<para>När en jämförelsefil betraktas, visas blocken mellan käll- och målfilen. Kom ihåg att bara blocken visas, inga oförändrade rader visas. I vissa fall skapas en jämförelsefil utan några sammanhangsrader. I dessa fall visas bara de ändrade raderna.</para>
<para>När en jämförelsefil innehåller block från flera filer, visar &kompare; block från varje fil åt gången, och du kan byta mellan filer som om de vore riktiga filer, även om denna information bara tillhandahålls av jämförelsefilens innehåll.</para>
<title>Applicerar skillnader i en jämförelsefil</title>
<para>När skillnader i en jämförelsefil betraktas, är det möjligt att applicera skillnader som du skulle göra när käll- och målfiler jämförs (se <xref linkend="merging-differences"/>).</para>
<title>Foga ihop en webbadress med en jämförelse</title>
<para>I fallet när en jämförelsefil tillhandahålls är det möjligt att jämföra blocken i jämförelsefilen med en fil eller katalog. För att göra det, välj <menuchoice><guimenu>Arkiv</guimenu> <guimenuitem>Foga ihop webbadress med jämförelse...</guimenuitem></menuchoice>. Mata därefter in sökvägar för <guilabel>Fil eller katalog</guilabel> och <guilabel>Jämförelseutmatning</guilabel>.</para>
<para>När skillnader mellan en källfil och en jämförelsefil betraktas, är det möjligt att applicera skillnader som du skulle göra när käll- och målfiler jämförs (se <xref linkend="merging-differences"/>).</para>
<para>&kompare; gör det möjligt för användare att ställa in visningsinställningar för formatering av skillnader i huvudgränssnittet, och ställa in egenskaper för beteendet hos diff-programmet. Dialogrutan <guilabel>Inställningar</guilabel> kan kommas åt genom att välja <menuchoice><guimenu>Inställningar</guimenu> <guisubmenu>Anpassa &kompare;...</guisubmenu></menuchoice>.</para>
<para>Välj alternativet <guilabel>Visa</guilabel> för att ställa in utseendeinställningar (se <xref linkend="view-settings"/>).</para>
<para>Välj alternativet <guilabel>Jämför</guilabel> för att ställa in programegenskaper för diff-programmet (se <xref linkend="diff-settings"/>).</para>
<para>Sidan <guimenu>Visa</guimenu> i dialogrutan <guilabel>Inställningar</guilabel> visar flikarna <guilabel>Utseende</guilabel> och <guilabel>Teckensnitt</guilabel>.</para>
<para>Fliken <guilabel>Utseende</guilabel> tillhandahåller inställningar för att hantera <guilabel>Färger</guilabel> som används för att ange skillnader i huvudgränssnittet, beteendet hos <guilabel>Mushjulet</guilabel> när det rörs uppåt och neråt, och hur konverteringen <guilabel>Tabulatortecken till mellanslag</guilabel> utförs.</para>
<para>Sidan <guimenu>Jämför</guimenu> i dialogrutan <guilabel>Inställningar</guilabel> visar flikarna <guilabel>Jämför</guilabel>, <guimenu>Format</guimenu>, <guilabel>Alternativ</guilabel> och <guilabel>Undantag</guilabel>. Flikarna kan användas för att ställa in egenskaper för beteendet hos diff-programmet.</para>
<para>Programmet diff kan skapa kommandon som styr texteditorn ed så att den första filen ändras till den andra. Historiskt var detta det enda utmatningsformatet som lämpade sig för att automatiskt redigera en fil till en annan. Efter ankomsten av <application>patch</application> används alternativet nästan aldrig.</para>
<para>Formatet RCS är särskilt framtaget för användning av <acronym>RCS</acronym> (Revision Control System). Liksom ed-formatet, används detta format sällan efter programmet <application>patch</application> introducerades.</para>
<para>Det förenade formatet är en variant av sammanhangsformatet. Det anses bättre än sammanhangsformatet på grund av att utdata är kompaktare än sammanhangsformatet, eftersom onödiga sammanhangsrader utelämnas.</para>
<para>Använd formatet Sida vid sida som visar filer listade i två kolumner med ett mellanrum mellan dem. Alternativet är bara tillgängligt i dialogrutan <guilabel>Jämförelsealternativ</guilabel> (se <xref linkend="creating-a-diff"/>).</para>
<para>När en jämförelse med sammanhangsformat eller förenat format utförs, används denna parameter för att styra antal sammanhangsrader som inkluderas.</para>
<term><guilabel>Expandera tabulator-tecken till mellanslag vid utmatning</guilabel></term>
<listitem><para>Om markerad, konverterar jämförelseutmatning tabulatortecken till det antal mellanslag som är definierat av alternativet <guimenu>Tabulatortecken till mellanslag</guimenu> på sidan <guilabel>Visa</guilabel> i dialogrutan <guilabel>Inställningar</guilabel>.</para>
<term><guilabel>Ignorera ändringar i blanktecken</guilabel></term>
<listitem><para>Blanktecken innan, efter och mellan rader kan ändras beroende på olika editorer. När alternativet är markerat ignoreras sådana ändringar.</para></listitem>
<term><menuchoice><shortcut> <keycombo action="simul">&Ctrl;<keycap>B</keycap></keycombo> </shortcut> <guimenu>Arkiv</guimenu><guimenuitem>Foga ihop webbadress med jämförelse...</guimenuitem></menuchoice></term>
<listitem><para>Visar dialogrutan <guilabel>Foga ihop webbadress med jämförelse</guilabel>.</para></listitem>