Index: trunk/l10n-kf5/nl/docs/kdereview/kdiff3/index.docbook
===================================================================
--- trunk/l10n-kf5/nl/docs/kdereview/kdiff3/index.docbook (nonexistent)
+++ trunk/l10n-kf5/nl/docs/kdereview/kdiff3/index.docbook (revision 1525159)
@@ -0,0 +1,2852 @@
+
+KDiff3">
+
+
+]>
+
+
+
+
+
+
+Het handboek van &kdiff3;
+
+
+JoachimEibljoachim.eibl at gmx.de
+
+
+&Sander.Koning;&Freek.de.Kruijf;&Ronald.Stroethoff;
+
+
+
+2002-2007
+Joachim Eibl
+
+
+2017
+Michael Reeves
+
+
+
+&FDLNotice;
+
+
+
+2018-04-30
+1.07.00
+
+
+
+&kdiff3; is een hulpmiddel om bestanden en mappen te vergelijken en samen te voegen dat
+twee of drie tekstbestanden of mappen vergelijkt en samenvoegt,
+de verschillen regel-voor-regel en teken-voor-teken(!) aangeeft,
+een automatische samenvoegfunctie biedt,
+een editor heeft voor het comfortabel oplossen van samenvoegconflicten,
+netwerktransparantie via KIO biedt,
+opties heeft voor het accentueren of verbergen van wijzigingen in witruimte of commentaar,
+Unicode, UTF-8 en andere bestandscoderingen ondersteunt,
+verschillen in regels afdrukt,
+versiebeheersleutelwoorden ondersteunt en samenvoegen van geschiedenis.
+
+Dit document beschrijft &kdiff3; versie 1.7.90.
+
+
+
+
+
+KDE
+kdiff3
+verschil
+samenvoegen
+CVS
+drievoudig verschil
+vergelijken
+bestanden
+mappen
+versiebeheer
+drievoudig samenvoegen
+verschillen in regels
+synchroniseren
+kpart
+kio
+netwerktransparant
+editor
+witruimte
+commentaar
+
+
+
+
+Inleiding
+Alweer een front-end voor diff?
+Er bestaan diverse grafische hulpmiddelen voor diff. Waarom &kdiff3; gebruiken? Laat me uitleggen waarom ik het geschreven heb. &kdiff3; begon omdat ik een moeilijke samenvoegoperatie moest doen. Samenvoegen is nodig als diverse mensen aan dezelfde bestanden in een project werken. Een samenvoeging kan enigszins geautomatiseerd worden, als het samenvoeghulpmiddel daartoe niet alleen de nieuwe, gewijzigde bestanden heeft ("takken") maar ook het originele bestand ("basis"). Het samenvoeghulpmiddel kiest automatisch een verandering die alleen in één tak is gedaan. Als diverse mensen dezelfde regels veranderen, detecteert het samenvoeghulpmiddel een conflict dat handmatig opgelost moet worden. De samenvoeging was moeilijk omdat één van de helpers veel dingen had gewijzigd en de insprong op veel plaatsen had verbeterd. Een andere helper had ook veel tekst in hetzelfde bestand veranderd, hetgeen in diverse samenvoegconflicten resulteerde. Het hulpmiddel dat ik toen gebruikte toonde alleen de gewijzigde regels, maar niet wat er in die regels was gewijzigd. En er was geen informatie over of alleen de insprong gewijzigd was. Het samenvoegen was een kleine ramp. Dus dat was het begin. De eerste versie kon verschillen binnen een regel en verschillen in witruimte tonen. Later werden veel andere mogelijkheden toegevoegd om het nut te vergroten. Als u bijvoorbeeld snel wat tekst wilt vergelijken, kunt u het naar het klembord kopiëren en in een van de vergelijkingsvensters plakken. Een optie die veel werk vereiste was het vergelijken en samenvoegen van mappen, dat het programma bijna in een bestandsverkenner veranderde. Ik hoop dat &kdiff3; ook voor u werkt. Veel plezier! Joachim Eibl (2003)
+
+
+Schermafdrukken en mogelijkheden
+Deze schermafdruk toont het verschil tussen twee tekstbestanden
+(met een vroegere versie van &kdiff3;):
+
+
+
+
+3-voudig samenvoegen wordt volledig ondersteunt. Dit is nuttig als twee mensen code onafhankelijk wijzigen. Het originele bestand (de basis) wordt gebruikt om &kdiff3; te helpen bij het automatisch selecteren van de goede wijzigingen. In de samenvoeg-editor onder de verschillenvensters kunt u conflicten oplossen, terwijl u de uitvoer ziet die dat oplevert. U kunt zelfs de uitvoer wijzigen. Deze schermafdruk toont het samenvoegen van drie invoerbestanden:
+
+
+
+
+
+&kdiff3; helpt u ook bij het vergelijken en samenvoegen van complete mappen. Deze schermafdruk toont &kdiff3; gedurende het samenvoegen van een map.
+
+
+
+
+
+
+Meer mogelijkheden
+Verschillen regel-voor-regel en teken-voor-teken tonen
+Door de mogelijkheden van een grafisch kleurenbeeldscherm te gebruiken toont &kdiff3; u precies wat het verschil is. U zult dit prettig vinden als u veel code moet doornemen.
+
+
+
+
+
+Verschillen in witruimte in één oogopslag zien
+Spaties en tabs die verschillen worden getoond. Als regels alleen in de hoeveelheid witruimte verschillen kunt u dit in één oogopslag zien in de overzichtskolom aan de linkerkant. (Geen zorgen meer als mensen de insprong veranderen.)
+
+
+
+
+
+Drievoudig verschil
+Drie bestanden analyseren en zien waar ze verschillen. De vensters links, midden en rechts heten A, B en C en zijn respectievelijk blauw, groen en magenta gekleurd. Als één bestand hetzelfde is en één bestand verschilt op een regel geeft de kleur aan welk bestand verschilt. De rode kleur geeft aan dat beide andere bestanden verschillen.
+
+
+
+
+
+Comfortabel samenvoegen van twee of meer invoerbestanden
+U kunt &kdiff3; gebruiken om twee of drie invoerbestanden samen te voegen en het samenvoegen zo veel mogelijk automatisch te laten verlopen. Het resultaat wordt getoond in een bewerkbaar venster waarin de meeste conflicten met een enkele muisklik opgelost kunnen worden: kies de knoppen A/B/C uit de knoppenbalk om de bron te kiezen die gebruikt moet worden. U kunt hier ook meer dan één bron kiezen. Aangezien dit uitvoervenster een editor is, kunnen ook conflicten die verdere correctie vereisen hier uitgevoerd worden zonder een extra hulpmiddel.
+
+
+En...
+
+ Snelle navigatie via knoppen.
+ Een muisklik in een samenvattingskolom synchroniseert alle vensters om dezelfde positie te laten zien.
+ Selecteer en kopieer vanuit elk venster en plak het in het samengevoegde resultaatvenster.
+ Een overzichtskolom die toont waar de wijzigingen en conflicten zijn.
+ De kleuren zijn aan te passen aan uw specifieke voorkeuren.
+ Aanpasbare tabgrootte.
+ Een optie om spaties in plaats van tabs in te voegen.
+ Bestanden comfortabel openen via een dialoogvenster of bestanden opgeven op de opdrachtregel.
+ Zoeken naar tekenreeksen in alle tekstvensters. Zoek (Ctrl-F) en Volgende zoeken (F3).
+ De regelnummers voor elke regel tonen.
+ Het klembord plakken of tekst in een verschil-invoervenster slepen.
+ Netwerktransparantie via KIO.
+ Kan gebruikt worden als verschillentoner in KDevelop 3.
+ Regelafbreking voor lange regels.
+ Ondersteuning voor Unicode, UTF-8 en andere coderingen.
+ Ondersteuning voor talen die rechts-naar-links schrijven.
+ ...
+
+
+
+
+
+Vergelijken en samenvoegen van bestanden
+
+Opdrachtregel-opties
+
+2 bestanden vergelijken:
+kdiff3bestand1 bestand2
+
+
+
+2 bestanden samenvoegen:
+kdiff3bestand1 bestand2 -m
+ kdiff3bestand1 bestand2 -o uitvoerbestand
+
+
+
+3 bestanden vergelijken:
+kdiff3bestand1 bestand2 bestand3
+
+
+
+3 bestanden samenvoegen:
+kdiff3bestand1 bestand2 bestand3 -m
+ kdiff3bestand1 bestand2 bestand3 -o uitvoerbestand
+
+Merk op dat bestand1 als basisbestand voor bestand2 en bestand3 gebruikt zal worden.
+
+
+Speciaal geval: bestanden met dezelfde naam
+Als alle bestanden dezelfde naam hebben maar zich in verschillende mappen bevinden, kunt u typewerk besparen door de bestandsnaam alleen voor het eerste bestand op te geven. Bijvoorbeeld:
+kdiff3map1/bestandsnaam map2 map3
+
+
+
+Opdrachtregel voor het vergelijken of samenvoegen van mappen:
+Dit lijkt er erg op, maar gaat nu over mappen.
+kdiff3map1 map2
+ kdiff3map1 map2 -o doelmap
+ kdiff3map1 map2 map3
+ kdiff3map1 map2 map3 -o doelmap
+
+Voor het vergelijken en samenvoegen van mappen kunt u hier verder lezen.
+
+
+Overige commandoregel-opties
+Voor meer informatie over opdrachtregel-opties gebruikt u:
+kdiff3 --help
+
+Voorbeeld uitvoer:
+Opties:
+ -m, --merge De invoer samenvoegen.
+ -b, --base bestand Expliciet basisbestand. Voor compatibiliteit met bepaalde hulpmiddelen.
+ -o, --output bestand Uitvoerbestand. Impliceert -m. Bijv: -o nieuwbestand.txt
+ --out bestand Uitvoerbestand. Voor compatibiliteit met bepaalde programma's.)
+ --auto Geen GUI als alle conflicten automatisch te doen zijn. (Vereist -o)
+ --qall Los conflicten niet automatisch op. (Voor compatibiliteit...)
+ --L1 alias1 Zichtbare naamvervanging voor invoerbestand1 (basis).
+ --L2 alias2 Zichtbare naamvervanging voor invoerbestand 2.
+ --L3 alias3 Zichtbare naamvervanging voor invoerbestand 3.
+ -L, --fname alias Alternatieve zichtbare naamvervanging. Eenmaal voor elke invoer opgeven..
+ --cs string Vervang een config instelling. Voor elke instelling er één gebruiken. Bijv.: --cs "AutoAdvance=1"
+ --confighelp Toon een lijst met config instellingen en huidige waarden.
+ --config file Gebruik een ander config-bestand.
+
+De optie maakt het mogelijk om een configuratie-waarde aan te passen die anders alleen via de configuratiedialoog veranderd kan worden. Let op: bij het beëindigen van &kdiff3; wordt de aangepaste waarde samen met de andere instellingen opgeslagen. De namen van de beschikbare configuratie-waarden en de waarden daarvan kunt U te weten komen door het gebruik van .
+Via kunt u een ander config-bestand specificeren. Wanneer u &kdiff3; vaak gebruikt met compleet andere instellingen dan stelt dit u in staat om gemakkelijk tussen hen te wisselen.
+
+Opdrachtregel-opties die genegeerd mogen worden
+Vele mensen willen &kdiff3; in combinatie met een versiecontrolesysteem gebruiken. Maar wanneer dit versiecontrolesysteem &kdiff3; aanroept door gebruik van parameters op de commandoregel, die &kdiff3; niet herkent, dan eindigt &kdiff3; met een foutmelding. U kunt bij de instellingen voor integratie commandoregelargumenten opgeven die door &kdiff3; genegeerd moeten worden. Ze zullen in de help voor gebruik verschijnen zoals in dit voorbeeld:
+--foo Genegeerd (gebruikergedefinieerd).
+
+
+ Te negeren commandoregelopties:Een lijst opties, gescheiden door puntkomma's ';'. Wanneer een van deze opties op de commandoregel verschijnt zal &kdiff3; deze negeren en draaien zonder een fout te geven. (Standaard is het "u;query;html;abort").
+
+Wanneer dit niet genoeg is, dan wordt het schrijven van een shell-script aanbevolen die de vertaling van de optie doet.
+
+
+
+
+Het venster "Openen"
+Aangezien veel bestanden geselecteerd moeten kunnen worden, heeft het programma een speciaal dialoogvenster hiervoor:
+
+
+
+In dit dialoogvenster kunt u de bestandsnamen met de hand wijzigen, een bestand via de bladeraar kiezen ("Bestand...") of recente bestanden via de afrolmenu's kiezen. Als u het dialoogvenster opnieuw opent, blijven de huidige bestandsnamen staan. Het derde invoerbestand is niet verplicht. Als het item bij "C" leeg blijft, wordt slechts een verschillenanalyse op twee bestanden uitgevoerd. U kunt ook een map kiezen met "Map...". Als voor A een map opgegeven is wordt een vergelijking/samenvoeging op mappen gestart. Als A een bestand opgeeft maar B, C of de uitvoer een map opgeeft, gebruikt &kdiff3; de bestandsnaam van A in de opgegeven mappen. Als "Samenvoegen" geselecteerd is, kunt u de regel "Uitvoer" bewerken. Maar het is niet nodig om direct de uitvoerbestandsnaam op te geven. U kunt hiermee ook wachten tot bij het opslaan. De knop "Instellen..." opent het optievenster, waarmee u de opties kunt instellen voordat de analyse gestart wordt.
+
+
+Invoer plakken en slepen
+Soms wilt u tekstdelen die niet in een eigen bestand staan vergelijken. &kdiff3; biedt u ook de mogelijkheid tekst vanaf het klembord in een vergelijkingsvenster, dat de focus heeft, te plakken. De vergelijkingsanalyse begint dan direct. In het venster "Openen" hoeft u dan geen bestanden op te geven, sluit dit gewoon met "Annuleren". U kunt ook slepen en neerzetten: Sleep een bestand uit een bestandsbeheerder of geselecteerde tekst uit een editor en zet deze neer in een verschillenvenster. Wat is het idee? Soms bevat een bestand twee gelijksoortige functies, maar bekijken hoe gelijk ze werkelijk zijn is een grote moeite als u eerst twee bestanden moet maken en deze dan moet laden. Nu kunt u eenvoudigweg de relevante secties kopiëren, plakken, en vergelijken. Opmerking: Momenteel kunt u niets uit &kdiff3; slepen. Alleen slepen naar de vergelijkingsinvoer wordt ondersteund. Waarschuwing: Sommige editors interpreteren slepen en neerzetten in een ander programma nog steeds als knippen (in plaats van kopiëren) en plakken. Uw originele gegevens kunnen daardoor verloren gaan.
+
+
+Bestanden vergelijken en de informatie in de invoervensters interpreteren
+
+
+
+InforegelBovenaan elk tekstvenster staat de "inforegel". De inforegels van de invoervensters bevatten een letter "A", "B" of "C", de te bewerken bestandsnaam, een knop voor bladeren en het regelnummer van de eerste zichtbare regel in het venster. (Merk op dat venster "C" optioneel is.) Elke inforegel verschijnt in een aparte kleur. Als u een ander bestand heeft geselecteerd door zoeken of door na het invoeren van de bestandsnaam op de toets Enter te drukken, dan zal het nieuwe bestand geladen worden en vergeleken met de al eerder geladen bestanden. KleurenDe drie invoervensters krijgen de letters "A", "B" en "C". "A" heeft de kleur blauw, "B" is groen en "C" is magenta. (Dit zijn de standaard kleuren, u kunt ze wijzigen via het menu Instellingen.) Als er een verschil opgemerkt wordt, toont de kleur welk invoerbestand er verschilt. Als beide andere invoerbestanden verschillen is de kleur die dit aangeeft standaard rood ("Conflictkleur" in Instellingen). Dit kleurenschema is vooral handig in het geval van drie invoerbestanden, hetgeen u zult zien in de volgende sectie (Samenvoegen). SamenvattingskolomLinks van elke tekst staat een "samenvattingskolom". Als er verschillen op een regel opgetreden zijn geeft deze kolom de respectievelijke kleur aan. Voor een verschil alleen in witruimte is de samenvatting geblokt. Voor programmeertalen waar witruimte niet zo belangrijk is, is dit nuttig om te zien of er iets belangrijks veranderd is. (In C/C++ is witruimte alleen interessant binnen tekenreeksen, commentaar, voor de preprocessor en sommige zeer uitzonderlijke situaties.) De verticale lijn die de overzichtskolom en de tekst scheidt wordt onderbroken als het invoerbestand daar geen regels heeft. Als regelafbreking ingeschakeld is, wordt deze lijn gestippeld voor afgebroken regels. OverzichtskolomAan de rechterkant is een "overzichts"-kolom zichtbaar, links van de verticale schuifbalk. Deze toont gecomprimeerd de samenvattingskolom van invoer "A". Alle verschillen en conflicten zijn in één oogopslag zichtbaar. Als er slechts twee invoervensters gebruikt worden, verschijnen alle verschillen in rood omdat elk verschil dan een conflict is. Een zwarte rechtoek omrandt het zichbare deel van de invoer. Voor zeer lange invoerbestanden, waarbij het aantal regels groter is dan de hoogte van de overzichtskolom in pixels, delen diverse invoerregels één overzichtsregel. Een conflict heeft dan topprioriteit boven eenvoudige verschillen, die prioriteit hebben boven geen wijziging, zodat geen verschil of conflict verloren gaat. Door in deze overzichtskolom te klikken wordt de bijbehorende tekst getoond. Handmatig regels uitlijnenSoms plaatst het algoritme de verkeerde regels naast elkaar. Of u wilt een stuk tekst vergelijken met een ander stuk tekst op een compleet andere locatie in het andere bestand. Voor dit soort situaties kunt u handmatig &kdiff3; bepaalde regels naast elkaar laten uitlijnen. Markeer met de muis de tekst die u wilt uitlijnen alsof u het wilt kopiëren en kies vervolgens Handmatige uitlijning van vergelijking toevoegen in het menu "Verschilweergave" (sneltoets &Ctrl;Y). Er zal een oranje balk in de samenvattingskolom naast de gekozen tekst verschijnen. Herhaal dit voor de tweede en (indien aanwezig) derde venster met verschillen. &kdiff3; zal iedere keer onmiddellijk de verschillen herberekenen en de aangewezen regels uitlijnen. Natuurlijk zullen sommige regels die voorheen wel uitgelijnd waren en nu niet meer uitgelijnd zijn. Op dit moment ondersteunt samenvoegen het handmatig uitlijnen niet. Handmatig samenvoegen en opsplitsen van secties met verschillenIn sommige gevallen heeft &kdiff3; te veel of te weinig secties om te kunnen samenvoegen. In dergelijke gevallen kunt u bestaande secties opsplitsen of juist samenvoegen. Voeg nieuwe secties toe door tekst in de regels die bij elkaar horen te selecteren in beide invoervensters (op dezelfde manier als kopiëren naar het klembord). Kies vervolgens "Vergelijking bij selectie splitsen" in het menu "Samenvoegen". Splitsingen worden boven de eerste regel en onder de laatste regel van de geselecteerde tekst geplaatst. Als u maar één sectie wilt toevoegen, dan moet u vanaf een andere sectie-splitsing de tekst selecteren. Voor het samenvoegen van secties in beide invoervenster selecteert u iets in de regels uit de samen te voegen secties. (U kunt ook meerdere secties in één bewerking samenvoegen). Kies vervolgens "Geselecteerde verschillen samenvoegen" in het menu "Samenvoegen".
+
+
+
+Samenvoegen en het editorvenster voor samenvoegingsuitvoer
+
+
+
+Het editorvenster voor de samenvoegingsuitvoer (onder de verschil-invoervensters) heeft ook een inforegel bovenaan met "Uitvoer:", de bestandsnaam en "[Gewijzigd]" als u iets bewerkt hebt. Meestal bevat dit wat tekst door de automatische samenvoegingsfunctie, maar vaak bevat het ook conflicten. !!! Opslaan is uitgeschakeld totdat alle conflicten opgelost zijn !!! (Gebruik de knoppen "Ga naar vorig/volgend onopgelost conflict" om de overgebleven conflicten te vinden.) Met maar twee invoerbestanden is elk verschil ook een conflict dat handmatig opgelost moet worden. Met drie invoerbestanden wordt het eerste bestand als basis gebruikt, en het tweede en derde bestand bevatten wijzigingen. Als op een bepaalde regel alleen invoer B of C gewijzigd is, maar niet beide, wordt de veranderde bron gekozen. Alleen als B en C op dezelfde regel veranderd zijn, detecteert het hulpmiddel een conflict dat handmatig opgelost moet worden. Als B en C hetzelfde zijn, maar niet hetzelfde als A, wordt C gekozen. De kolom SamenvattingHet editorvenster voor samenvoegingsuitvoer heeft ook links een samenvattingskolom. Deze toont de letter van de invoer waaruit een regel geselecteerd is of niets als alle drie de bronnen gelijk waren op die regel. Bij conflicten wordt een vraagteken "?" getoond en de regel toont dan "<Samenvoegconflict>", het geheel in rood. Omdat conflicten regel voor regel oplossen erg lang duurt, worden de regels gegroepeerd in groepen die dezelfde verschil- en conflictkenmerken hebben, Alleen witruimte-conflicten worden gescheiden van niet-witruimte-conflicten om het samenvoegen van bestanden waarin de insprong gewijzigd is, gemakkelijker te maken. De huidige groep instellen en zichtposities van samenvoegen en verschillen synchroniserenAls u met de linkermuisknop in een samenvattingskolom klikt, wordt de groep die bij die regel hoort geselecteerd in alle vensters en wordt het begin van de groep getoond. Deze groep wordt dan de "huidige groep". Deze wordt geaccentueerd met de "Achtergrondkleur voor Huidig bereik (diff)" en er verschijnt een zwarte balk links van de tekst. Kies invoer A, B of C voor het huidige conflict en bewerkingDe knoppenbalk onder de menubalk heeft drie selectieknoppen voor invoer met de letters "A", "B" en "C". Klik op de keuzeknop voor invoer om de regels uit de desbetreffende bron te plakken (of na het plakken weer te verwijderen). Voor gebruik van regels uit verschillende bronnen klikt u op de knoppen in de gewenste volgorde. Als u bijvoorbeeld wilt dat de regels van "B" boven de regels van "A" in de uitvoer verschijnen, klik dan eerst op "B" en daarna op "A". Als u de optie auto-advance ("Automatisch na bronselectie naar volgende onopgeloste conflict gaan") gebruikt, is het verstandig om dit uit te schakelen voordat u uit diverse bronnen regels selecteert en deze daarna wilt gaan bewerken. Als u dit nalaat zal &kdiff3; naar het volgende conflict springen na het selecteren van de eerste invoer. Het is vaak handig om de samenvoegingsuitvoer te kunnen bewerken. In de samenvattingskolom is een "m" te zien voor iedere regel die handmatig is bewerkt. Wanneer bijvoorbeeld de verschillen zodanig zijn uitgelijnd dat eenvoudig de invoer kiezen niet het gewenste resultaat oplevert, dan kunt u de gewenste tekst markeren en de normale manier van kopiëren en plakken gebruiken voor het samenvoegen. Soms verschijnt de tekst "<Geen regel in de bron>" in een regel als die ofwel door automatisch samenvoegen ofwel door bewerken verwijderd is, en er geen andere regels in die groep overblijven. Dit is een plaatshouder voor de groep voor als u zich bedenkt en weer een bron aangeeft. De tekst verschijnt niet in het opgeslagen bestand of in gekopieerde of geplakte selecties. De tekst "<Samenvoegconflict>" verschijnt in het klembord als u tekst met zo'n regel kopieert en plakt. Maar wees alsnog voorzichtig. Kiezen van invoer A, B, of C voor alle conflictenHet normale samenvoegen begint door het automatisch oplossen van eenvoudige conflicten. Maar het menu "Samenvoegen" biedt wat acties voor andere veelvoorkomende zaken. Als u dezelfde bron voor de meeste conflicten wilt gebruiken, kunt u "A", "B" of "C" overal kiezen, of alleen voor de overgebleven niet-opgeloste conflicten, of voor de niet-opgeloste witruimteconflicten. Als u elk apart onderscheid zelf wilt bepalen, kunt u "Elk onderscheid maken bij conflicten" instellen. Of als u terug wilt gaan naar de automatische keuzes van &kdiff3; kiest u "Eenvoudige conflicten automatisch oplossen". &kdiff3; herstart het samenvoegen dan. Voor acties die uw vorige wijzigingen aanpassen vraagt &kdiff3; om uw instemming alvorens door te gaan. Merk op: als u één van de bronnen voor onopgeloste witruimte-conflicten kiest, en de optie "Getallen negeren" of "C/C++ commentaar negeren" is gekozen, dan worden wijzigingen in getallen respectievelijk commentaar ook als witruimte behandeld. Automatisch samenvoegen van trefwoorden en geschiedenis (Log) uit versiebeheerVeel systemen voor versiecontrole gebruiken speciale trefwoorden in het bestand. (Bijvoorbeeld "$Date$", "$Header$", "$Author$", "$Log$" enz.). Deze regels worden aangepast tijdens het inchecken in het version control system (VCS). Bijvoorbeeld "$Date$" zal veranderen naar "$Date: 2005/03/22 18:45:01 $". Omdat deze regel in iedere versie van het bestand verschillend is, is daarom het handmatig ingrijpen noodzakelijk tijdens het samenvoegen. &kdiff3; heeft de mogelijkheid om dit soort items automatisch samen te voegen. Bij eenvoudige regels die overeenkomen met de instellingen voor "Reguliere expressie voor automatisch samenvoegen" voor alle invoerbestanden, zal &kdiff3; kiezen voor de regel uit B of - indien beschikbaar - uit C. (Het is bovendien noodzakelijk dat voor de vergelijking de regels uitgelijnd zijn en dat de voorgaande regels geen conflicten hebben). Dit automatisch samenvoegen kunt u naar keuze onmiddellijk na het starten van het samenvoegen uitvoeren (door het inschakelen van de keuze "Bij starten van samenvoegen automatisch reguliere expressie gebruiken") of later via "Automatisch samenvoegen d.m.v. reguliere expressie uitvoeren" in het menu Samenvoegen. Ook het automatisch samenvoegen van de geschiedenis van versiebeheer (ook "log" genoemd) is ondersteund. De geschiedenis samenvoegen kunt u naar keuze onmiddellijk na het starten van het samenvoegen uitvoeren door het inschakelen van de keuze "Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegen" of later via het "Automatisch geschiedenisconflicten oplossen" in het menu Samenvoegen. Meestal begint de geschiedenis van het versiebeheer met een regel waarin het trefwoord "$Log$"voorkomt. Dit moet overeenkomen met de "Reguliere expressie voor begin van geschiedenis". &kdiff3; bepaalt welke opvolgende regels ook in de geschiedenis thuishoren door te kijken naar de voorafgaande karakters die voor het trefwoord "$Log$" staan. Als dezelfde "voorafgaand commentaar"-karakters ook in volgende regels verschijnen, dan worden deze regels ook in de geschiedenis opgenomen. Tijdens elke check-in schrijft het VCS een unieke regel met daarin informatie over de versie, datum en tijdstip gevolgd door regels met commentaar van de gebruiker. Deze regels vormen samen een geschiedenisitem. Deze geschiedenis groeit met elke check-in met het meest recente item bovenaan (na de beginregel van de geschiedenis). Wanneer bij parallelle ontwikkeling twee of meer ontwikkelaars een tak van een bestand inchecken dan verschijnen bij het samenvoegen van de geschiedenis verschillende items met conflicten. Omdat het samenvoegen van deze takken vervelend kan zijn, komt &kdiff3; met twee mogelijke strategieën: Gewoon de geschiedenisitems van beide ontwikkelaars bovenaan invoegen of de geschiedenisitems sorteren via een door de gebruiker opgegeven trefwoord. De gewoon-toevoegen-van-alle-items-methode is makkelijker om in te stellen. &kdiff3; heeft alleen maar een methode nodig om vast te stellen welke regels bij een geschiedenis-item horen. De meeste VCS voegen een lege regel toe onder elke geschiedenis-item. Als er geen andere lege regels zijn dan is dit voldoende voor &kdiff3;. Maak eenvoudig een lege "Reguliere expressie voor begin van een geschiedenis-item" aan. Als het lege regel criterium niet voldoende is dan kunt u een normale expressie aanmaken voor het detecteren van het begin van het geschiedenis-item. Merk op dat &kdiff3; duplicaat geschiedenis-items zal verwijderen. Als een geschiedenis-item meerdere keren aanwezig is in de geschiedenis van een invoerbestand dan blijft deze maar één keer bewaart in het uitvoerbestand. Als u de geschiedenis op volgorde wilt leggen dan moet u opgeven hoe de sorteersleutel is opgebouwd. Gebruik haakjes ('(' of ')') in de "Reguliere expressie voor het begin van een geschiedenis-item" voor het groeperen van gedeeltes van de reguliere expressie die u later wilt gebruiken voor de sorteersleutel. Geef vervolgens in de "Sorteervolgorde van het begin van geschiedenis-items" met door komma's "," gescheiden lijst op van nummers die de volgorde aangeven in de reguliere expressie. Omdat het niet gemakkelijk is om dit in een keer goed te krijgen, kunt u de reguliere expressie uitproberen en daarna zo nodig verbeteren in een speciaal dialoogvenster door het gebruik van de knop "Reguliere expressies testen". Voorbeeld: Neem aan dat een geschiedenis er als volgt uitziet:
+/**************************************************************************
+** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $
+**
+** \main\integration_branch_12 2 Apr 2001 10:45:41 tom
+** Samengevoegde branch simon_branch_15.
+**
+** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry
+** Snelheid van subroutine convertToMesh() verbeterd.
+** crash opgelost.
+**************************************************************************/
+ De geschiedenis beginregel komt overeen met de reguliere expressie ".*\$Log.*\$.*". Daarna volgen de geschiedenisitems. De regel met het trefwoord "$Log$" begint met twee keer "*" waarna een spatie volgt. &kdiff3; gebruikt de eerste regel met niet-witruimte als "voorafgaand commentaar" en concludeert dat de geschiedenis eindigt in de eerste regel zonder dit voorafgaand commentaar. In dit voorbeeld eindigt de laatste regel met een tekenreeks die ook start met twee keer "*", maar in plaats van een spatie volgt meer keer "*". Met deze regel eindigt daarom de geschiedenis. Als het op volgorde leggen van de geschiedenis niet nodig is dan kan de reguliere expressie er als volgt uit zien. (Deze regel is in tweeën gesplitst omdat het anders niet paste.)
+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+ Meer informatie over reguliere expressies kunt u lezen in de documentatie van Trolltech over reguliere expressies. Merk op dat "\s" (kleine letter "s") overeenkomt met witruimte en "\S" (Hoofdletter "S") overeenkomt met niet-witruimte. In ons voorbeeld bestaat de beginregel van ons geschiedenis-item als eerste informatie over de versie met de reguliere expressie "\\main\\\S+", de datum bestaande uit de dag "[0-9]+", maand "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" en jaar "[0-9][0-9][0-9][0-9]", de tijd "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" en tenslotte de gebruikersnaam van de ontwikkelaar ".*". Merk op dat de tekens van het "voorafgaand commentaar" (in het voorbeeld "**") al verwijderd zijn door &kdiff3; voor de poging tot uitlijnen, daarom begint de reguliere expressie met een overeenkomst voor een of meer witruimte-tekens "\s*". Omdat commentaar-tekens kunnen verschillen in ieder bestand (bv. C/C++ gebruikt andere commentaar-tekens dan een Perl script) let &kdiff3; zelf op de tekens van voorafgaand commentaar en hoeven deze daarom niet opgegeven te worden in de reguliere expressie. Als het op volgorde leggen van de geschiedenis voor u noodzakelijk is, dan moet de sorteersleutel berekent worden. Hiervoor moeten de relevante gedeeltes van de reguliere expressie gegroepeerd worden door haken. (De extra haken kunnen blijven als het op volgorde leggen is uitgeschakeld.)
+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+ Tussen de haken vindt u nu 1. versie info, 2. dag, 3. maand, 4. jaar, 5. tijd, 6. naam. Maar als we op datum en tijd willen sorteren dan moeten we een sleutel creëren waarvan de onderdelen een andere volgorde hebben: eerst het jaar, gevolgd door de maand, dag, tijd, versienummer en naam. De sorteersleutel moet daarom als volgt "4,3,2,5,1,6" opgegeven worden. Omdat de namen van maanden niet handig zijn voor het op volgorde leggen ("Apr" zou dan de eerste zijn) detecteert &kdiff3; in welke volgorde de namen van maanden zijn opgegeven en gebruikt in plaats daarvan dat nummer ("Apr"->"04"). En als een kaal nummer is gevonden dan zal dit worden omgezet naar een viercijferig getal met voorloopnullen voor het op volgorde leggen. Tenslotte zal de sorteersleutel voor de beginregel van de geschiedenis er als volgt uit zien: 2001 04 0002 10:45:41 integration_branch_12 tom
+
+Lees voor meer informatie ook Instellingen samenvoegen.
+
+
+
+Navigatie en bewerken
+Veel navigatie doet u met de schuifbalken en de muis maar u kunt ook met de toetsen navigeren. Als u in een venster klikt, kunt u de pijltoetsensen Links, Rechts, Omhoog en Omlaag en Page Up, Page Down, Home, End, Ctrl-Home en Ctrl-End gebruiken als in andere programma's. De overzichtskolom naast de verticale schuifbalk van de invoerbestanden kan ook voor navigatie gebruikt worden door erin te klikken. U kunt ook een muiswiel gebruiken om omhoog en omlaag te bladeren. In de uitvoereditor voor samenvoegen kunt u ook de andere toetsen gebruiken om de tekst te bewerken. U kunt tussen invoeg- en overschrijfmodus wisselen met de toets Insert. (Standaard is invoegmodus.) Een klik met de linker muisknop in een samenvattingskolom synchroniseert alle vensters zodat ze het begin van dezelfde groep regels tonen (zoals uitgelegd in de sectie "De huidige groep instellen en zichtposities van samenvoegen en verschillen synchroniseren"). De knoppenbalk heeft ook negen navigatieknoppen waarmee u naar het huidige/eerste/laatste verschil kunt springen, naar het volgende/vorige verschil (Ctrl-omlaag/Ctrl-omhoog), naar het volgende/vorige conflict (Ctrl-PageDown/Ctrl-PageUp) of naar het volgende/vorige onopgeloste conflict. Merk op dat voor &kdiff3; een "conflict" dat niet automatisch werd opgelost bij het begin van het samenvoegen een "conflict" blijft, zelfs als het wordt opgelost. Vandaar de noodzaak om "onopgeloste conflicten" te onderscheiden.
+Automatisch doorgaan
+Er is ook een knop "Automatisch naar het volgende onopgeloste conflict gaan" (Automatisch doorgaan). Als u dit inschakelt, springt &kdiff3; automatisch naar het volgende onopgeloste conflict, zodra u een bron hebt geselecteerd. Dit kan helpen als u altijd slechts één bron wilt kiezen. Als u beide bronnen nodig hebt of als u na het kiezen nog wilt wijzigen, dan wilt u deze optie waarschijnlijk uitschakelen. Voordat u naar het volgende onopgeloste conflict gaat, toont &kdiff3; u korte tijd het effect van uw keuze. Deze tijd is instelbaar in de Verschil- en samenvoeginstellingen: de tijd voor "Automatisch doorgaan" is instelbaar in milliseconden tussen 0 en 2000. Tip: Niet te veel klikken? Kies een korte tijdsduur voor Automatisch doorgaan en de sneltoetsen Ctrl-1/2/3 om A/B/C voor conflicten te selecteren.
+
+
+
+Selecteren, kopiëren en plakken
+De invoervensters tonen geen cursor, dus selecteren moet gedaan worden met de muis door met de linkermuisknop aan het begin te klikken, de muisknop ingedrukt te houden en naar het eind te bewegen, waar u de muisknop weer loslaat. U kunt ook een woord selecteren door erop te dubbelklikken. In de samenvoegeditor kunt u ook met het toetsenbord selecteren met Shift en de pijltoetsen. Als datgene wat u wilt selecteren niet in het venster past dan kunt u de muis naar buiten de randen van het venster verplaatsen zodat &kdiff3; in die richting schuift. Bij zeer grote selecties kunt u ook de navigatie-toetsen gebruiken terwijl u de muis ingedrukt houdt. Gebruik b.v de pagina omhoog en pagina omlaag om snel naar een bepaalde positie te gaan en laat op de gewenste positie de muisknop los. Om alles te selecteren in het geselecteerde venster gebruikt u "Bewerken"->"Alles selecteren" (Ctrl-A). Om naar het klembord te kopiëren moet u de knop "Kopiëren" kiezen (Ctrl-C of Ctrl-Insert). Maar er bestaat een optie "Selectie automatisch kopiëren". Als deze is ingeschakeld, wordt geselecteerde tekst direct naar het klembord gekopieerd. Let er hierbij wel op dat bestaande inhoud van uw klembord niet per ongeluk ongewenst verwijderd wordt. "Knippen" (Ctrl-X of Shift-Delete) kopieert naar het klembord en verwijdert de geselecteerde tekst. "Plakken" (Ctrl-V of Shift-Insert) plakt de tekst uit het klembord naar de cursorpositie. Als u plakt naar een willekeurig invoervenster dan krijgt u de klembordinhoud in dat venster te zien en zal de vergelijking onmiddellijk starten. Dit is handig als u snel een stuk tekst ergens vandaan haalt en dit wilt vergelijken met iets anders zonder eerst bestanden te hoeven aan te maken.
+
+
+Opslaan
+Opslaan is alleen toegestaan als alle conflicten opgelost zijn. Als het bestand al bestaat en de optie "Reservekopie" ingeschakeld is, wordt het bestaande bestand hernoemd met een extensie ".orig", een bestaande reservekopie wordt hierbij overschreven. Als u afsluit of een andere verschillenanalyse start en de gegevens nog niet zijn opgeslagen, vraagt &kdiff3; u of u wilt opslaan, annuleren of doorgaan zonder opslaan. (&kdiff3; vangt geen signalen. Dus als u &kdiff3; "kill"t gaan uw gegevens verloren.) Regeleinden worden opgeslagen volgens de normale methode op het onderliggende besturingssysteem. Voor Unix-systemen eindigt elke regel met een 'linefeed' "\n", terwijl op Win32-systemen elke regel met een 'carriage return' en een 'linefeed' eindigt "\r\n". &kdiff3; bewaart de regeleinden van de invoerbestanden niet, hetgeen ook betekent dat u &kdiff3; niet met binaire bestanden moet gebruiken.
+
+
+Tekenreeksen zoeken
+U kunt naar tekenreeksen zoeken in elk tekstvenster van &kdiff3;. De opdracht "Zoeken..." (Ctrl-F) in het menu Bewerken opent een venster waarin u de te zoeken tekenreeks kunt opgeven. U kunt ook de vensters opgeven waarin gezocht moet worden. Zoeken begint altijd bovenaan. Gebruik de opdracht "Volgende zoeken" (F3) om naar het volgende voorkomen door te gaan. Als u meerdere vensters opgeeft om in te zoeken wordt het eerste venster van boven naar beneden doorzocht, voordat het volgende venster weer van bovenaf wordt doorzocht, enzovoort.
+
+
+Bezig met afdrukken
+&kdiff3; ondersteunt het printen van verschillen tussen tekstbestanden. De opdracht "Afdrukken..." (Ctrl-P) in het menu Bestand opent een dialoog waarin u de printer kunt kiezen en diverse keuzemogelijkheden kunt instellen. Er zijn diverse mogelijkheden om de afdrukselectie in te stellen. Omdat de afdrukdialogen bij de diverse besturingssystemen verschillend zijn, is de methode voor het instellen van de afdrukselectie ook verschillend.
+
+ Alles:Alles afdrukken.
+ Huidige:Drukt een pagina af die begint met de eerst in het venster zichtbare regel. (Bij systemen zonder deze mogelijkheid kunt u dit bereiken door het paginanummer 10000 op te geven voor het afdrukken.)
+ Selectie:Voordat u gaat printen selecteert u eerst de tekst met de muis (zoals voor kopiëren en plakken) in een van de diff-invoervensters om de beginregel en de eindregel te bepalen. Als geen tekst in een van invoervensters van diff is geselecteerd dan is deze keuze niet beschikbaar. (Bij systemen zonder deze mogelijkheid kunt u dit bereiken door het paginanummer 9999 op te geven voor het afdrukken.)
+ Bereik:Geef de beginpagina en de eindpagina op.
+
+Andere belangrijke keuzemogelijkheden voor het afdrukken zijn de normale keuzes:
+ Lettertype, lettergrootte
+ Regelnummering tonen
+ Regelafbreking
+ Kleuren
+ etc.
+
+Liggend (landschap) afdrukken wordt aanbevolen.
+
+
+Opties
+Opties en de recente-bestandenlijst worden opgeslagen als u het programma afsluit, en opnieuw ingelezen als u het start. (Instellingen -> &kdiff3; instellen...)
+Lettertype
+Kies een lettertype met vaste breedte. (Op sommige systemen toont dit dialoogvenster ook lettertypes met variabele breedte, maar die dient u liever niet te gebruiken.)
+
+ Cursief lettertype voor onderscheiden:Als u dit kiest, worden tekstverschillen getoond met de cursieve versie van het geselecteerde lettertype. Als het lettertype geen cursief ondersteunt, doet dit niets.
+
+
+
+
+Kleuren
+
+ Voorgrondkleur:Gewoonlijk zwart.
+ Achtergrondkleur:Gewoonlijk wit.
+ Achtergrondkleur bij verschillen:Gewoonlijk lichtgrijs.
+ Kleur voor A:Gewoonlijk donkerblauw.
+ Kleur voor B:Gewoonlijk donkergroen.
+ Kleur voor C:Gewoonlijk donkermagenta.
+ Kleur voor conflicten:Gewoonlijk rood.
+ Achtergrondkleur voor huidig bereik:Gewoonlijk lichtgeel.
+ Achtergrondkleur voor verschillen in huidig bereik:Gewoonlijk donkergeel.
+ Kleur voor handmatig uitgelijnde bereiken van verschillen:Gewoonlijk oranje.
+ Kleur van nieuwste bestand bij het vergelijken van mappen:Gewoonlijk groen.
+ Kleur van oudste bestand voor het vergelijken van mappen:Gewoonlijk rood.
+ Kleur van bestand met middelste leeftijd voor het vergelijken van mappen:Gewoonlijk donkergeel.
+ Kleur van ontbrekende bestanden in het vergelijken van mappen:Gewoonlijk zwart.
+
+De kleuren wijzigen voor vergelijken van mappen zal alleen effectief zijn na het starten van het volgende vergelijken van mappen.
+Op systemen met slechts 16 of 256 kleuren zijn sommige kleuren niet beschikbaar in pure vorm. Op zulke systemen zorgt de knop "Standaard" voor een pure kleur.
+
+
+Editor-instellingen
+
+ Tab voegt spaties in:Als dit uitgeschakeld is en u de toets Tab indrukt, wordt een tab-teken ingevoegd, anders het aangegeven aantal spaties.
+ Tabgrootte:Kan ingesteld worden voor uw specifieke wensen. Standaard is 8.
+ Automatisch inspringen:Als u Enter drukt wordt het inspringen van de vorige regel gebruikt voor de nieuwe.
+ Automatische kopieerselectie:Elke selectie wordt onmiddellijk naar het klembord gekopieerd, indien actief, u hoeft het niet expliciet te kopiëren.
+ Regeleinde:Bij het opslaan kunt u opgeven welk regeleinde u verkiest. De standaardinstelling is de gebruikelijke keuze voor het gebruikte besturingssysteem.
+
+
+
+Diff-instellingen
+Bij het vergelijken van bestanden, probeert &kdiff3; eerst regels te vinden die gelijk zijn in alle invoerbestanden. Alleen gedurende deze stap wordt witruimte mogelijk genegeerd. De tweede stap vergelijkt elke regel. In deze stap wordt witruimte niet genegeerd. Ook gedurende het samenvoegen wordt witruimte niet genegeerd.
+
+
+ Getallen negeren:Standaard uit. Getaltekens ('0'-'9', '.', '-') worden genegeerd in het eerste deel van de analyse waarin regels worden vergeleken. In het resultaat worden de verschillen wel getoond, maar behandeld als witruimte.
+ C/C++ commentaar negeren:Standaard uit. Wijzigingen in commentaar worden behandeld als wijzigingen in witruimte.
+ Geen onderscheid hoofd-/kleine letters:Standaard uit. Wijzigingen in verschillen tussen hoofd en kleine letters (zoals 'A' vs. 'a') worden behandeld als wijzigingen in witruimte.
+ Preprocessorcommando:Zie de volgende sectie.
+ Preprocessor-commando alleen voor regelcontroles:Zie de volgende sectie.
+ Grondig zoeken:Doe veel moeite om kleinere onderscheiden te vinden (standaard aan). Dit is waarschijnlijk effectief voor gecompliceerde, grote bestanden. En langzaam voor erg grote bestanden.
+
+
+
+Instellingen samenvoegen
+
+ Vertraging voor automatisch doorgaan (ms):Bij het automatisch doorgaan bepaalt deze instelling hoe lang het resultaat van de selectie getoond wordt voordat er naar het volgende onopgeloste conflict gesprongen wordt.
+ Standaardsamenvoeging van witruimtes bij 2/3 bestanden:Automatisch alle witruimteconflicten oplossen door een gespecificeerd bestand te kiezen. (Standaard is handmatige keuze.) Nuttig als witruimte in veel bestanden niet belangrijk is. Als u dit alleen af en toe nodig hebt kunt u beter "A/B/C voor alle onopgeloste conflicten kiezen" in het menu Samenvoegen kiezen. Merk op dat als u "Getallen negeren" of "C/C++ commentaar negeren" hebt ingeschakeld, deze automatische keuze ook voor conflicten in getallen of commentaar geldt.
+ Reguliere expressie voor automatisch samenvoegen:Reguliere expressie voor regels waar &kdiff3; automatisch één bron moet kiezen. Zie ook Automatisch samenvoegen ...
+ Bij starten van samenvoegen automatisch reguliere expressie gebruiken:Indien u automatisch samenvoegen inschakelt dan gebruikt &kdiff3; de "Reguliere expressie voor automatisch samenvoegen" bij het samenvoegen.
+ Reguliere expressie voor begin van geschiedenis:Reguliere expressie voor het begin van het item van de geschiedenis van het samenvoegen. Veel voorkomende waarde in deze regel is het trefwoord "$Log$". Standaardwaarde: ".*\$Log.*\$.*"
+ Reguliere expressie voor begin van geschiedenisitem:Een samenvoeg-geschiedenis-item bestaat uit verschillende regels. Geef de reguliere expressie op voor het detecteren van de eerste regel (zonder het voorafgaand commentaar). Gebruik haakjes ('(' of ')') om de sleutels te groeperen die u wilt gebruiken bij het sorteren of op volgorde leggen. indien leeg, dan neemt &kdiff3; aan dat lege regels geschiedenis-items scheiden. Lees ook Automatisch samenvoegen ...
+ Geschiedenis samenvoegend sorteren:Geschiedenis van sorteren van versiebeheer inschakelen.
+ Sorteervolgorde van begin van geschiedenisitems:Het gebruik van een haakje ('(' of ')') in de reguliere expressie groepeert een sleutel die gebruikt kan worden voor sorteren. Geef een lijst op met sleutels (die genummerd worden in volgorde van gebruik met de 1 als begin) met ',' als scheidingsteken (b.v. "4,5,6,1,2,3,7"). Indien leeg zal er niet worden gesorteerd. Lees ook Automatisch samenvoegen ...
+ Geschiedenis van versiebeheer samenvoegen bij aanvang van samenvoegen:Indien u automatisch samenvoegen inschakelt dan gebruikt &kdiff3; de bovengenoemde keuzes bij het samenvoegen van de geschiedenis.
+ Max. aantal items in geschiedenis:&kdiff3; verkort de geschiedenislijst na het gespecificeerde aantal items. Gebruik -1 om verkorting te voorkomen. (Standaard is -1).
+ Uw reguliere expressies testenDeze knop opent een dialoogvenster waarin u de hierboven beschreven reguliere expressies kunt testen en zo nodig verbeteren. Kopieer respectievelijke data uit uw bestanden naar de voorbeeld regels. In het "Resultaat van overeenkomsten" zal onmiddellijk te zien zijn of de resultaten wel of niet succesvol zijn. In het "Resulterende sorteersleutel" is de voor het samenvoegen van de geschiedenis gebruikte sleutel te zien.
+ Irrelevant samenvoegcommando:Geef uw eigen commando op dat gebruikt moet worden wanneer &kdiff3; bemerkt dat bij het samenvoegen van een groep bestanden het bestand van B geen relevante data toevoegt die niet al door een bestand uit C is toegevoegd. Het commando wordt gestart met de drie bestandsnamen als parameters. Data die overeenkomt met "Reguliere expressie voor automatisch samenvoegen" of in de geschiedenis voorkomt is hierbij niet relevant.
+
+
+
+
+Mapsamenvoeging
+Deze opties gaan over het doorzoeken van de map en de afhandeling van het samenvoegen: zie Mapvergelijking/samenvoeging voor details. Er is hier echter één optie die ook relevant is voor het opslaan van enkele bestanden:
+
+ Reservekopiebestanden:Als een bestand wordt opgeslagen en er al een oudere versie bestaat, wordt het oude bestand hernoemd met een extensie ".orig". Als een oud reservekopiebestand met de extensie ".orig" al bestaat, wordt deze zonder reservekopie verwijderd.
+
+
+
+Regio- en taalinstellingen
+
+ Taal:Past de taal van de gebruikersinterface aan. Het wijzigen van deze optie heeft geen invloed op het huidige programma. U dient &kdiff3; af te sluiten en te herstarten om de taal te veranderen. (Deze optie is niet beschikbaar in de Frameworks-versie van &kdiff3;).
+ Dezelfde codering gebruiken voor alles:De volgende coderingsopties kunnen apart aangepast worden voor elk item. Als deze optie is ingeschakeld nemen alle waarden deze over.
+ Lokale codering:Boven de coderings-selectors komt een opmerking die u vertelt wat de lokale codering is. (Dit is niet aan te passen, maar wordt aangegeven als u uw lokale codering niet weet, maar wel wilt kiezen.)
+ Bestandscodering voor A/B/C:Pas de bestandscodering voor invoerbestanden aan. Dit heeft effect op hoe speciale tekens geïnterpreteerd worden. Aangezien u elke codering apart kunt instellen, kunt u zelfs bestanden vergelijken en samenvoegen die met verschillende coderingen zijn opgeslagen.
+ Bestandscodering voor samenvoeguitvoer en opslag:Als u een bestand hebt bewerkt, kunt op aanpassen met welke codering het weer op schijf wordt opgeslagen.
+ Bestandscodering voor preprocessorbestanden:Als u preprocessors opgeeft kunnen deze misschien niet met uw codering werken (bijvoorbeeld: uw bestanden zijn 16-bits unicode en uw preprocessor kan alleen met 8-bits ascii overweg). Met deze optie kunt u de codering van preprocessor-uitvoer opgeven.
+ Rechts-naar-links-taalSommige talen worden van rechts naar links geschreven. Als ieze optie is ingeschakeld, tekent &kdiff3; de tekst van rechs naar links in de verschillenvensters en in het uitvoervenster. Merk op dat, als u &kdiff3; met de opdrachtregeloptie "--reverse" start, alle schermopmaak ook van rechts naar links gedaan wordt. (Dit is een optie die door Qt aangeboden wordt.) Deze documentatie is geschreven met de aanname dat "Rechts-naar-links-taal" of omgekeerde indeling uitgeschakeld zijn. Sommige verwijzingen naar "links" en "rechts" moeten dus omgedraaid worden als u die opties gebruikt.
+
+
+
+
+Diverse
+(Deze opties en acties zijn in menu's of in de knoppenbalk beschikbaar.)
+
+ Regelnummering tonen:U kunt kiezen of regelnummers voor de invoerbestanden getoond moeten worden.
+ Spaties & tabulator-tekens in verschillen tonen:Soms zijn de zichtbare spaties en tabs storend. U kunt dit uitschakelen.
+ Witruimte tonen:Schakel dit uit om accentuering van alleen-witruimte-veranderingen in de tekst of overzichtskolommen uit te schakelen. (Merk op dat dit ook van toepassing is op wijzigingen in getallen of commentaar als de opties "Getallen negeren" of "C/C++ commentaar negeren" actief zijn.)
+ Overzichtsopties:Deze keuzes zijn alleen beschikbaar als u drie bestanden vergelijkt. In normale modus worden alle verschillen getoond in één kleurgecodeerde overzichtskolom. Maar soms bent u speciaal geïnteresseerd in de verschillen tussen slechts twee van deze drie bestanden. Door "A vs B", "A vs C" of "B vs C" te kiezen wordt er een tweede overzichtskolom met de vereiste informatie getoond naast het normale overzicht.
+ Regels afbreken in vensters met verschillen:Regels afbreken als hun lengte de breedte van een venster zou overschrijden.
+ Venster A/B/C tonen:Soms wilt u de ruimte op het scherm beter gebruiken voor lange regels. Verberg dan de vensters die niet belangrijk zijn. (In het menu Venster.)
+ Splitsen van vensters omschakelen:Wisselen tussen weergave van verschilvensters naast elkaar (A links van B links van C) of boven elkaar (A boven B boven C). Dit moet ook voor lange regels helpen. (In het menu Venster).
+ Samenvoegen snel starten:Soms bekijkt u de verschillen en besluit u te willen samenvoegen. "Huidig bestand samenvoegen" in het menu Map werkt ook als u slechts twee bestanden vergelijkt. Een enkele klik start het samenvoegen en gebruikt de bestandsnaam van het laatste invoerbestand als het standaard uitvoerbestand. (Als dit gebruikt wordt om een samenvoeging te herstarten, wordt de uitvoerbestandsnaam behouden.)
+
+
+
+Sneltoetsen instellen
+Momenteel ondersteunt alleen de Frameworks-versie gebruikergedefinieerde sneltoetsen (Menu Instellingen -> Sneltoetsen instellen...)
+
+
+
+Preprocessor-opdrachten
+&kdiff3; ondersteunt twee preprocessor-opties.
+
+ Preprocessorcommando:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. De uitvoer van deze opdracht is dan zichtbaar in plaats van het originele bestand. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Gebruik dit om storende delen van het bestand weg te halen, of automatisch de insprong te verbeteren, enzovoort.
+ Preprocessor-commando alleen voor regelcontroles:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. Als een preprocessor-opdracht (zie boven) ook opgegeven wordt, wordt de uitvoer van de preprocessor de invoer van de preprocessor voor regelovereenkomsten. De uitvoer wordt dan alleen gebruikt bij de regelvergelijkingsfase van de analyse. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Elke invoerregel moet een overeenkomende uitvoerregel hebben.
+
+
+Het idee is om de gebruiker grotere flexibiliteit te geven bij het instellen van het resultaat. Maar dit vereist een extern programma, en veel gebruikers willen dat niet zelf schrijven. Het goede nieuws is dat sed of perl vaak voldoende is.
+Voorbeeld: een eenvoudig testgeval: Beschouw het bestand a.txt (6 regels):
+ aa
+ ba
+ ca
+ da
+ ea
+ fa
+ en het bestand b.txt (3 regels):
+ cg
+ dg
+ eg
+ Zonder preprocessor zouden de volgende regels naast elkaar geplaatst worden:
+ aa - cg
+ ba - dg
+ ca - eg
+ da
+ ea
+ fa
+ Dit is waarschijnlijk niet gewenst omdat de eerste letter de feitelijk interessante informatie bevat. Om het zoekalgoritme te helpen bij het negeren van de tweede letter kunnen we een preprocessor-opdracht voor regelovereenkomsten gebruiken, die 'g' door 'a' vervangt:
+ sed 's/g/a/'
+ Met deze opdracht wordt het resultaat van de vergelijking:
+ aa
+ ba
+ ca - cg
+ da - dg
+ ea - eg
+ fa
+ Intern wordt het zoeken van bij elkaar passende regels na het uitvoeren van de preprocessor voor regelovereenkomsten gedaan, maar op het scherm is het bestand ongewijzigd. (De normale preprocessor verandert de gegevens ook op het scherm.)
+
+De basis van sed
+Deze sectie geeft alleen een inleiding op een paar basismogelijkheden van sed. Zie voor meer informatie info:/sed of http://www.gnu.org/software/sed/manual/html_mono/sed.html. Een voorgecompileerde versie voor Windows kunt u vinden op http://unxutils.sourceforge.net. Merk op dat de volgende voorbeelden ervan uitgaan dat de opdracht sed in een map in uw omgevingsvariabele PATH staat. Als dit niet het geval is, dient u het volledige absolute pad voor de opdracht te gebruiken.
+In deze context wordt alleen de vervangingsopdracht van sed gebruikt:
+ sed 's/REGEXP/VERVANGING/VLAGGEN'
+ Voordat u een nieuwe opdracht in &kdiff3; gebruikt, zou u deze eerst in een console moeten testen. Hiervoor is de opdracht echo nuttig. Voorbeeld:
+ echo abrakadabra | sed 's/a/o/'
+ -> obrakadabra
+ Dit voorbeeld toont een zeer eenvoudige sed-opdracht die het eerste voorkomen van "a" door "o" vervangt. Als u alle voorkomens wilt vervangen, hebt u de vlag "g" nodig:
+ echo abrakadabra | sed 's/a/o/g'
+ -> obrokodobro
+ Het symbool "|" is de doorsluisopdracht die de uitvoer van de vorige opdracht naar de invoer van de volgende opdracht doorgeeft. Als u dit wilt uitproberen met een langer bestand kunt u op Unix-systemencat gebruiken en type op Windows-systemen. sed voert de vervanging op elke regel uit. catbestandsnaam | sedopties
+
+
+
+Voorbeelden van het gebruik van sed in &kdiff3;
+Andere soorten commentaar negeren
+Momenteel begrijpt &kdiff3; alleen C/C++ commentaar. Met de preprocessoropdracht voor regelovereenkomsten kunt u ook andere soorten commentaar negeren, door ze in C/C++ commentaar om te zetten. Voorbeeld: om commentaar dat met "#" begint te negeren, wilt u deze omzetten naar "//". Merk op dat u hiervoor ook de optie "C/C++ commentaar negeren" moet inschakelen om effect te krijgen. Een goede preprocessoropdracht voor regelovereenkomsten zou dan zijn:
+ sed 's/#/\/\//'
+ Omdat in sed het teken "/" een aparte betekenis heeft, is het nodig om het teken "\" voor elke "/" in de vervangende tekenreeks te plaatsen. Soms is de "\" ook nodig om een teken een speciale betekenis te geven of deze juist weg te halen. De accenten (') zijn alleen belangrijk bij testen op de commandoshell omdat het anders sommige tekens probeert te verwerken. KDiff3 doet dat niet behalve voor de escape-sequences '\"' en '\\'.
+
+Niet-hoofdlettergevoelige verschillen
+Gebruik de volgende preprocessoropdracht voor regelovereenkomsten om alle invoer naar hoofdletters om te zetten:
+ sed 's/\(.*\)/\U\1/'
+ Hier is de ".*" een reguliere expressie die met elke tekenreeks overeenkomt en in deze context met alle lettertekens op de regel overeenkomt. De "\1" in de vervangende tekenreeks verwijst naar de overeenkomende tekst binnen het eerste paar "\(" en "\)". De "\U" zet de ingevoegde tekst om in hoofdletters.
+
+
+Versiebeheer-trefwoorden negeren
+CVS en andere versiebeheersystemen gebruiken diverse trefwoorden om automatisch gegenereerde tekenreeksen in te voegen (info:/cvs/Trefwoordvervanging. Deze volgen allemaal het patroon "$TREFWOORD gegenereerde tekst$". We hebben nu een preprocessoropdracht voor regelovereenkomsten nodig die alleen de gegenereerde tekst verwijdert:
+ sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+ De "\|" scheidt de mogelijke trefwoorden. U wilt deze lijst misschien aan uw eigen wensen aanpassen. De "\" voor de "$" is nodig omdat anders de "$" met het einde van de regel overeenkomt.
+Terwijl u experimenteert met sed gaat u wellicht deze reguliere expressies begrijpen en op prijs stellen. Ze zijn nuttig omdat er veel andere programma's zijn die soortgelijke dingen ondersteunen.
+
+
+Getallen negeren
+Getallen negeren is in feite een ingebouwde optie. Maar als een ander voorbeeld is dit de preprocessoropdracht voor regelovereenkomsten:
+ sed 's/[0123456789.-]//g'
+ Elk teken tussen '[' en ']' komt overeen en wordt vervangen door niets.
+
+
+Bepaalde kolommen negeren
+Soms is een tekst erg strict opgebouwd, en bevat deze kolommen die u altijd wilt negeren, terwijl er andere kolommen zijn die u voor analyse wilt bewaren. In het volgende voorbeeld worden de eerste vijf kolommen (lettertekens) genegeerd, de volgende tien worden bewaard, dan worden er weer vijf genegeerd en de rest van de regel wordt bewaard.
+ sed 's/.....\(..........\).....\(.*\)/\1\2/'
+ Elke punt '.' komt overeen met een willekeurig teken. De "\1" en "\2" in de vervangende tekenreeks verwijzen naar de overeenkomende tekst in het eerste en tweede paar "\(" en "\)" die de tekst aangeven die bewaard moet worden.
+
+
+Diverse vervangingen combineren
+Soms wilt u diverse vervangingen tegelijk uitvoeren. U kunt dan de puntkomma ';' gebruiken om deze van elkaar te scheiden. Voorbeeld: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/'
+ -> OBROKODOBRO
+
+
+
+
+perl in plaats van sed gebruiken
+In plaats van sed wilt u wellicht iets anders gebruiken zoals perl.
+ perl -p -e 's/REGEXP/VERVANGING/VLAGGEN'
+ Maar sommige details zijn anders in perl. Merk op waar sed "\(" en "\)" vereist, perl de eenvoudigere "(" en ")" zonder voorafgaande '\' vereist. Voorbeeld: sed 's/\(.*\)/\U\1/'
+ perl -p -e 's/(.*)/\U\1/'
+
+
+
+
+
+Uitvoervolgorde van preprocessors
+De data wordt doorgesluisd door alle interne en externe preprocessors, in deze volgorde:
+
+Normale preprocessor.
+Preprocessor voor regelovereenkomsten.
+Hoofdletterongevoelig (conversie naar hoofdletters).
+Opsporen van C/C++ commentaar.
+Getallen negeren.
+Witruimte negeren.
+
+De gegevens zoals die na de normale preprocessor zijn worden bewaard voor weergave en samenvoeging. De andere handelingen wijzigen alleen de gegevens die het verschillenalgoritme voor regelovereenkomsten ziet. Merk op dat, in de zeldzame gevallen waar u een normale preprocessor gebruikt, de preprocessor voor regelovereenkomsten de uitvoer van de normale preprocessor als invoer ziet.
+
+
+Waarschuwing
+De preprocessor-opdrachten zijn vaak erg nuttig, maar net zoals elke andere optie die automatisch uw teksten wijzigt of bepaalde verschillen verbergt, kunt u per ongeluk bepaalde verschillen over het hoofd zien en in het ergste geval belangrijke gegevens vernietigen. Om deze reden vertelt &kdiff3; u het als er een normale preprocessor-opdracht wordt gebruikt bij het samenvoegen, en wordt u gevraagd of deze uitgeschakeld moet worden of niet. Maar u wordt niet gewaarschuwd als er een preprocessoropdracht voor regelovereenkomsten actief is. Het samenvoegen is niet voltooid totdat alle conflicten opgelost zijn. Als u "Witruimte tonen" uitgeschakeld hebt, zijn de verschillen die met de preprocessoropdracht voor regelovereenkomsten verwijderd zijn, ook onzichtbaar. Als de knop "Opslaan" inactief blijft tijdens het samenvoegen (door overblijvende conflicten), schakel dan "Witruimte tonen" in. Als u deze minder belangrijke verschillen niet handmatig wilt samenvoegen kunt u "[A|B|C] voor alle onopgeloste witruimteconflicten gebruiken" kiezen uit het menu "Samenvoegen".
+
+
+
+
+
+Mappen vergelijken en samenvoegen met &kdiff3;
+Introductie tot mappen vergelijken en samenvoegen
+Programmeurs moeten vaak veel bestanden in een map veranderen om hun doel te bereiken. Daarom laat &kdiff3; u ook hele mappen recursief vergelijken en samenvoegen! Hoewel het vergelijken en samenvoegen van mappen nogal duidelijk lijkt, zijn er aan paar details die u moet kennen. Het belangrijkste is natuurlijk het feit dat nu door elke handeling veel bestanden gewijzigd kunnen worden. Als u geen reservekopieën van uw originele gegevens hebt, kan het erg moeilijk of zelfs onmogelijk zijn om naar de originele staat terug te keren. Dus voordat u een samenvoeging start, zorg ervoor dat uw gegevens veilig zijn en dat u terug kunt keren. Of u een archief maakt of een versiebeheersysteem gebruikt is uw keuze, maar zelfs ervaren programmeurs en integrators hebben zo nu en dan de oude broncodes nodig. En merk op dat ik (de auteur van &kdiff3;) mijn best doe, maar ik kan niet garanderen dat er geen bugs zijn. Volgens de GNU-GPL is er GEEN WAARBORG op welke manier dan ook voor dit programma. Dus wees bescheiden en onthoud:
+
+ Vergissen is menselijk, maar om dingen echt te verknoeien hebt u een computer nodig.
+