comparison kdiff3/doc/en/index.docbook @ 69:8febbfb1148c

KDiff3 0.9.89
author joachim99
date Mon, 10 Apr 2006 08:40:51 +0000
parents d7cafcda8c99
children f7dad0aa6146
comparison
equal deleted inserted replaced
68:d7cafcda8c99 69:8febbfb1148c
1 <?xml version="1.0" ?> 1 <?xml version="1.0" ?>
2 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ 2 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3 <!ENTITY kdiff3 "<application>KDiff3</application>"> 3 <!ENTITY kdiff3 "<application>KDiff3</application>">
4 <!ENTITY kappname "&kdiff3;"> 4 <!ENTITY kappname "&kdiff3;">
5 <!ENTITY package "kdeextragear-1"> 5 <!ENTITY package "extragear-utils">
6 <!ENTITY % addindex "IGNORE"> 6 <!ENTITY % addindex "IGNORE">
7 <!ENTITY % English "INCLUDE"> 7 <!ENTITY % English "INCLUDE">
8 ]> 8 ]>
9 9
10 <book lang="&language;"> 10 <book lang="&language;">
28 </authorgroup> 28 </authorgroup>
29 29
30 <!-- TRANS:ROLES_OF_TRANSLATORS --> 30 <!-- TRANS:ROLES_OF_TRANSLATORS -->
31 31
32 <copyright> 32 <copyright>
33 <year>2002-2005</year> 33 <year>2002-2006</year>
34 <holder>Joachim Eibl</holder> 34 <holder>Joachim Eibl</holder>
35 </copyright> 35 </copyright>
36 <!-- Translators: put here the copyright notice of the translation --> 36 <!-- Translators: put here the copyright notice of the translation -->
37 <!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook 37 <!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
38 and in the FDL itself on how to use it. --> 38 and in the FDL itself on how to use it. -->
43 need them for translation coordination ! 43 need them for translation coordination !
44 Please respect the format of the date (YYYY-MM-DD) and of the version 44 Please respect the format of the date (YYYY-MM-DD) and of the version
45 (V.MM.LL), it could be used by automation scripts. 45 (V.MM.LL), it could be used by automation scripts.
46 Do NOT change these in the translation. --> 46 Do NOT change these in the translation. -->
47 47
48 <date>2005-01-30</date> 48 <date>2006-04-09</date>
49 <releaseinfo>0.9.87</releaseinfo> 49 <releaseinfo>0.9.89</releaseinfo>
50 50
51 51
52 <abstract> 52 <abstract>
53 <para></para> 53 <para></para>
54 <para> 54 <para>
58 <listitem><para>shows the differences line by line and character by character(!),</para></listitem> 58 <listitem><para>shows the differences line by line and character by character(!),</para></listitem>
59 <listitem><para>provides an automatic merge-facility,</para></listitem> 59 <listitem><para>provides an automatic merge-facility,</para></listitem>
60 <listitem><para>has an editor for comfortable solving of merge-conflicts,</para></listitem> 60 <listitem><para>has an editor for comfortable solving of merge-conflicts,</para></listitem>
61 <listitem><para>provides networktransparency via KIO,</para></listitem> 61 <listitem><para>provides networktransparency via KIO,</para></listitem>
62 <listitem><para>has options to highlight or hide changes in white-space or comments,</para></listitem> 62 <listitem><para>has options to highlight or hide changes in white-space or comments,</para></listitem>
63 <listitem><para>supports Unicode, UTF-8 and other file encodings.</para></listitem> 63 <listitem><para>supports Unicode, UTF-8 and other file encodings,</para></listitem>
64 <listitem><para>prints differences,</para></listitem>
65 <listitem><para>supports version control keyword and history merging.</para></listitem>
64 </itemizedlist> 66 </itemizedlist>
65 </para><para> 67 </para><para>
66 This document describes KDiff3-version 0.9.87. 68 This document describes KDiff3-version 0.9.89.
67 </para> 69 </para>
68 </abstract> 70 </abstract>
69 71
70 <!-- This is a set of Keywords for indexing by search engines. 72 <!-- This is a set of Keywords for indexing by search engines.
71 Please at least include KDE, the KDE package it is in, the name 73 Please at least include KDE, the KDE package it is in, the name
228 </itemizedlist> 230 </itemizedlist>
229 </sect2> 231 </sect2>
230 </sect1> 232 </sect1>
231 </chapter> 233 </chapter>
232 234
233 <chapter id="documentation"><title>Documentation of File Comparison And Merge</title> 235 <chapter id="documentation"><title>File Comparison And Merge</title>
234 236
235 <sect1 id="commandline"><title>Command-Line Options</title> 237 <sect1 id="commandline"><title>Command-Line Options</title>
236 238
237 <sect2><title>Comparing 2 files: </title> 239 <sect2><title>Comparing 2 files: </title>
238 <screen> 240 <screen>
284 <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable> -o <replaceable>destdir</replaceable> 286 <command>kdiff3</command> <replaceable>dir1 dir2 dir3</replaceable> -o <replaceable>destdir</replaceable>
285 </screen> 287 </screen>
286 <para>For directory comparison and merge you can continue to read <link linkend="dirmerge">here</link>.</para> 288 <para>For directory comparison and merge you can continue to read <link linkend="dirmerge">here</link>.</para>
287 </sect2> 289 </sect2>
288 290
289 <sect2><title>For more information on command line options use: </title> 291 <sect2><title>Other command line options</title>
290 <screen> 292 <para>To see all available command line options type</para>
291 <command>kdiff3</command> --help 293 <screen>
294 <command>kdiff3</command> --help
295 </screen>
296 <para>Example output:</para>
297 <screen>
292 Options: 298 Options:
293 -m, --merge Merge the input. 299 -m, --merge Merge the input.
294 -b, --base file Explicit base file. For compatibility with certain tools. 300 -b, --base file Explicit base file. For compatibility with certain tools.
295 -o, --output file Output file. Implies -m. E.g.: -o newfile.txt 301 -o, --output file Output file. Implies -m. E.g.: -o newfile.txt
296 --out file Output file, again. (For compatibility with certain tools.) 302 --out file Output file, again. (For compatibility with certain tools.)
298 --qall Don't solve conflicts automatically. (For compatibility...) 304 --qall Don't solve conflicts automatically. (For compatibility...)
299 --L1 alias1 Visible name replacement for input file 1 (base). 305 --L1 alias1 Visible name replacement for input file 1 (base).
300 --L2 alias2 Visible name replacement for input file 2. 306 --L2 alias2 Visible name replacement for input file 2.
301 --L3 alias3 Visible name replacement for input file 3. 307 --L3 alias3 Visible name replacement for input file 3.
302 -L, --fname alias Alternative visible name replacement. Supply this once for every input. 308 -L, --fname alias Alternative visible name replacement. Supply this once for every input.
303 -u Has no effect. For compatibility with certain tools. 309 --cs string Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1"
304 </screen> 310 --confighelp Show list of config settings and current values.
311 --config file Use a different config file.
312 </screen>
313 <para>The option <option>--cs</option> allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs.
314 But be aware that when KDiff3 then terminates the changed value will be stored along with the other settings.
315 With <option>--confighelp</option> you can find out the names of the available items and current values.</para>
316 <para>Via <option>--config</option> you can specify a different config file. When you often use KDiff3
317 with completely different setups this allows you to easily switch between them.</para>
318 </sect2>
319 <sect2><title>Ignorable command line options</title>
320 <para>Many people want to use KDiff3 with some version control system.
321 But when that version control system calls KDiff3 using command line parameters that KDiff3 doesn't recognise, then KDiff3 terminates with an error.
322 The integration settings allow to specify command line parameters that should be ignored by KDiff3.
323 They will appear in the usage help like in this example:</para>
324 <screen>
325 --<replaceable>foo</replaceable> Ignored. (User defined.)
326 </screen>
327 <variablelist>
328 <varlistentry><term><emphasis>Command line options to ignore:</emphasis></term><listitem><para>
329 A list of options, separated via semicolon ';'. When one of these options appears on the commandline,
330 then KDiff3 will ignore it and run without reporting an error.
331 (Default is "u;query;html;abort").</para></listitem></varlistentry>
332 </variablelist>
333 <para>When this isn't enough, then it is recommended to write a shell script that does the option translation.</para>
305 </sect2> 334 </sect2>
306 335
307 </sect1> 336 </sect1>
308 337
309 <sect1 id="opendialog"><title>Open-Dialog</title> 338 <sect1 id="opendialog"><title>Open-Dialog</title>
355 Warning: Some editors still interpret the drag and drop into another program like cut 384 Warning: Some editors still interpret the drag and drop into another program like cut
356 (instead of copy) and paste. Your original data might be lost then. 385 (instead of copy) and paste. Your original data might be lost then.
357 </para> 386 </para>
358 </sect1> 387 </sect1>
359 388
360 <sect1 id="interpretinginformation"><title>Interpreting The Information In The Input Windows</title> 389 <sect1 id="interpretinginformation"><title>Comparing Files And Interpreting The Information In The Input Windows</title>
361 <screenshot><mediaobject> 390 <screenshot><mediaobject>
362 <imageobject><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject> 391 <imageobject><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
363 </mediaobject></screenshot> 392 </mediaobject></screenshot>
364 <para> 393 <sect2><title>Info Line</title><para>
365 At the top of each text window is its "info line". The info lines of 394 At the top of each text window is its "info line". The info lines of
366 the input windows contain a letter "A", "B" or "C", the filename and the 395 the input windows contain a letter "A", "B" or "C", the editable filename,
367 line number of the first visible line in the window. (Note that window 396 a button for browsing, and the line number of the first visible line in the window.
368 "C" is optional.) Each info line appears in a different color. (If the paths 397 (Note that window "C" is optional.) Each info line appears in a different color.
369 are too long to fit, then you can move the mouse onto the info line and 398 </para><para>
370 a tooltip will show the complete name.) 399 When you selected another file via browsing or finished editing the filename here
371 </para><para> 400 by pressing enter, the new file will be loaded and
401 compared with the already loaded file(s).
402 </para></sect2><sect2><title>Coloring</title><para>
372 The three input windows are assigned the letters "A", "B" and "C". 403 The three input windows are assigned the letters "A", "B" and "C".
373 "A" has color blue, "B" has green and "C" has magenta. (These are the 404 "A" has color blue, "B" has green and "C" has magenta. (These are the
374 defaults, but can be changed in the Settings-Menu.) 405 defaults, but can be changed in the Settings-Menu.)
375 </para><para> 406 </para><para>
376 When a difference is detected then the color shows which input file 407 When a difference is detected then the color shows which input file
377 differs. When both other input files differ then the color used to express 408 differs. When both other input files differ then the color used to express
378 this is red by default ("Conflict color" in the Settings). 409 this is red by default ("Conflict color" in the Settings).
379 This colorscheme is especially useful in the case of three input files, which will be 410 This colorscheme is especially useful in the case of three input files, which will be
380 seen in the next section (<link linkend="merging">Merging</link>). 411 seen in the next section (<link linkend="merging">Merging</link>).
381 </para><para> 412 </para></sect2><sect2><title>Summary Column</title><para>
382 Left of each text is the "summary column". If differences occurred on a 413 Left of each text is the "summary column". If differences occurred on a
383 line then the summary column shows the respective color. For a white-space-only 414 line then the summary column shows the respective color. For a white-space-only
384 difference the summary is chequered. For programming languages where white 415 difference the summary is chequered. For programming languages where white
385 space is not so important this is useful to see at one glance if anything 416 space is not so important this is useful to see at one glance if anything
386 of importance was modified. (In C/C++ white space is only interesting within 417 of importance was modified. (In C/C++ white space is only interesting within
387 strings, comments, for the preprocessor, and some only very esoteric situations.) 418 strings, comments, for the preprocessor, and some only very esoteric situations.)
388 </para><para> 419 </para><para>
389 The vertical line separating the summary column and the text is interrupted 420 The vertical line separating the summary column and the text is interrupted
390 if the input file had no lines there. When word-wrap is enabled then this vertical 421 if the input file had no lines there. When word-wrap is enabled then this vertical
391 line appears dotted for wrapped lines. 422 line appears dotted for wrapped lines.
392 </para><para> 423 </para></sect2><sect2><title>Overview Column</title><para>
393 On the right side a "overview"-column is visible left of the vertical scrollbar. 424 On the right side a "overview"-column is visible left of the vertical scrollbar.
394 It shows the compressed summary column of input "A". All the differences 425 It shows the compressed summary column of input "A". All the differences
395 and conflicts are visible at one glance. When only two input windows are 426 and conflicts are visible at one glance. When only two input windows are
396 used, then all differences appear red here because every difference is 427 used, then all differences appear red here because every difference is
397 also a conflict. A black rectangle frames the visible part of the inputs. 428 also a conflict. A black rectangle frames the visible part of the inputs.
399 the height of the overview column in pixels, then several input lines share 430 the height of the overview column in pixels, then several input lines share
400 one overview line. A conflict then has top priority over simple differences, 431 one overview line. A conflict then has top priority over simple differences,
401 which have priority over no change, so that no difference or conflict is 432 which have priority over no change, so that no difference or conflict is
402 lost here. By clicking into this overview column the corresponding text 433 lost here. By clicking into this overview column the corresponding text
403 will be shown. 434 will be shown.
404 </para> 435 </para></sect2><sect2 id="manualdiffhelp"><title>Manually Aligning Lines</title><para>
436 Sometimes the algorithm places the wrong lines next to each other. Or you want to compare
437 one piece of text with text at a completely different position in the other file.
438 For these situations you can manually instruct KDiff3 to align certain lines.
439 Mark the text for which you want to improve the alignment with the mouse as you would
440 for copy and paste in the first diff view and then choose "Add Manual Diff Alignment"
441 in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in
442 the summary column next to the chosen text. Repeat this for the second and
443 (if available) third diff view. KDiff3 will immediately recalculate the differences everytime you do this.
444 and will align the chosen lines. Of course some of the previously matching lines in between
445 might not match anymore.
446 </para><para>
447 Currently merging doesn't support the use of manual diff help.
448 </para></sect2>
405 </sect1> 449 </sect1>
406 450
407 451
408 <sect1 id="merging"><title>Merging And The Merge Output Editor Window</title> 452 <sect1 id="merging"><title>Merging And The Merge Output Editor Window</title>
409 <screenshot><mediaobject> 453 <screenshot><mediaobject>
425 second and third input files contain modifications. When at any line only 469 second and third input files contain modifications. When at any line only
426 either input B or input C have changed but not both then the changed source 470 either input B or input C have changed but not both then the changed source
427 will automatically be selected. Only when B and C have changed on the same 471 will automatically be selected. Only when B and C have changed on the same
428 lines, then the tool detects a conflict that must be solved manually. 472 lines, then the tool detects a conflict that must be solved manually.
429 When B and C are the same, but not the same as A, then C is selected. 473 When B and C are the same, but not the same as A, then C is selected.
430 </para><para> 474 </para><sect2><title>The Summary Column</title><para>
431 The merge output editor window also has a summary column on the left. It shows the 475 The merge output editor window also has a summary column on the left. It shows the
432 letter of the input from which a line was selected or nothing if all three 476 letter of the input from which a line was selected or nothing if all three
433 sources where equal on a line. For conflicts it shows a questionmark "?" 477 sources where equal on a line. For conflicts it shows a questionmark "?"
434 and the line shows "&lt;Merge Conflict&gt;", all in red. Because solving 478 and the line shows "&lt;Merge Conflict&gt;", all in red. Because solving
435 conflicts line by line would take very long, the lines are grouped into 479 conflicts line by line would take very long, the lines are grouped into
436 groups that have the same difference and conflict characteristics. 480 groups that have the same difference and conflict characteristics.
437 But only-white-space-conflicts are separated from non-white-space-conflicts 481 But only-white-space-conflicts are separated from non-white-space-conflicts
438 in order to ease the merging of files were the indentation changed for many 482 in order to ease the merging of files were the indentation changed for many
439 lines. 483 lines.
440 </para><para> 484 </para></sect2><sect2 id="synchronise_views"><title>Setting The Current Group And Synchronising Merge And Diff View Position</title><para>
441 When clicking into the summary column with the left mouse button in either 485 When clicking into the summary column with the left mouse button in either
442 window then the group belonging to that line will be selected in all windows 486 window then the beginning of the group belonging to that line will shown in all windows.
443 and the beginning of that group will be shown. (This might involve an automatic
444 position jump in the windows if the beginning of a group is not visible.)
445 This group then becomes the "current group". It is highlighted with the 487 This group then becomes the "current group". It is highlighted with the
446 "Current range (diff) background color" and 488 "Current range (diff) background color" and
447 a black bar appears on the left side of the text. 489 a black bar appears on the left side of the text.
448 </para><para> 490 </para></sect2><sect2><title>Choosing Inputs A, B or C For Current Conflict And Editing</title><para>
449 Note the input selector buttons containing the letters "A", "B" and 491 The button bar below the menu bar contains three input selector buttons
450 "C" in the button bar below the menu bar. When clicking on either input 492 containing the letters "A", "B" and "C". Click the input selector
451 selector button, the lines from that input will be added at the end of the 493 button to insert (or remove if already inserted) the lines from the respective source.
452 selected group if that group didn't contain that source before. Otherwise 494 To choose the lines from several inputs click the respective buttons in the
453 the lines from that input will be removed. 495 needed order. For example if you want that the lines from "B" appear before
454 </para><para> 496 the lines from "A" in the output, first click "B", then "A".
455 Besides, you can directly edit any line. The summary column will show "m" 497 </para><para>
456 for every line that was modified. 498 If you use the auto-advance option
499 (<link linkend="autoadvance">"Automatically go to next unsolved conflict after source selection"</link>),
500 you should disable this before choosing lines from several inputs or if you want to
501 edit the lines after your choice. Otherwise KDiff3 will jump to the next
502 conflict after choosing the first input.
503 </para><para>
504 It is often helpful directly edit the merge output.
505 The summary column will show "m" for every line that was manually modified.
506 When for instance the differences are aligned in a way that simply choosing
507 the inputs won't be satisfactory, then you can mark the needed text and use
508 normal <link linkend="selections">copy and paste</link> to put it into the merge output.
457 </para><para> 509 </para><para>
458 Sometimes, when a line is removed either by automatic merge or by editing 510 Sometimes, when a line is removed either by automatic merge or by editing
459 and no other lines remain in that group, then the text &lt;No src line&gt; 511 and no other lines remain in that group, then the text &lt;No src line&gt;
460 will appear in that line. This is just a placeholder for the group for 512 will appear in that line. This is just a placeholder for the group for
461 when you might change your mind and select some source again. This text won't 513 when you might change your mind and select some source again. This text won't
462 appear in the saved file or in any selections you want to copy and paste. 514 appear in the saved file or in any selections you want to copy and paste.
463 </para><para> 515 </para><para>
464 The text "&lt;Merge Conflict&gt;" will appear in the clipboard if you 516 The text "&lt;Merge Conflict&gt;" will appear in the clipboard if you
465 copy and paste some text containing such a line. But still be careful to 517 copy and paste some text containing such a line. But still be careful to
466 do so. 518 do so.
467 </para><para> 519 </para></sect2><sect2><title>Choosing Input A, B, or C for All Conflicts</title><para>
468 The normal merge will start by solving simple conflicts automatically. 520 The normal merge will start by solving simple conflicts automatically.
469 But the "Merge"-menu provides some actions for other common needs. 521 But the "Merge"-menu provides some actions for other common needs.
470 If you have to select the same source for most conflicts, then you can 522 If you have to select the same source for most conflicts, then you can
471 choose "A", "B" or "C" everywhere, or only for the remaining unsolved 523 choose "A", "B" or "C" everywhere, or only for the remaining unsolved
472 conflicts, or for unsolved whitespace conflicts. If you want to decide every 524 conflicts, or for unsolved whitespace conflicts. If you want to decide every
477 confirmation before proceeding. 529 confirmation before proceeding.
478 </para><para> 530 </para><para>
479 Note: When choosing either source for unsolved whitespace conflicts and 531 Note: When choosing either source for unsolved whitespace conflicts and
480 the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in 532 the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in
481 numbers or comments will be treated like whitespace too. 533 numbers or comments will be treated like whitespace too.
482 </para> 534
535 </para></sect2><sect2 id="vcskeywordsmergesupport"><title>Automatic Merge of Version Control Keywords and History (Log)</title><para>
536 Many version control systems support special keywords in the file. (e.g. "$Date$",
537 "$Header$", "$Author$", "$Log$
538 "$Header$", "$Author$", "Revision 1.5 2006/04/10 08:33:34 joachim99
539 "$Header$", "$Author$", "KDiff3 0.9.89
540 "$Header$", "$Author$", "" etc.) During the
541 check-in the version control system (VCS) changes these lines. For instance
542 "$Date$" will turn into "$Date$". Since this line will
543 be different in every version of the file, it would require manual interaction
544 during the merge.
545 </para><para>
546 KDiff3 offers automatic merge for these items. For simple lines that match the
547 "Auto merge regular expression"-option in all input-files KDiff3 will choose
548 the line from B or - if available - from C. (Additionally it is necessary that the lines
549 in question line up in the comparison and the previous line contains no conflict.)
550 This auto merge can either be run immediately after a merge starts (activate the option
551 "Run regular expression auto merge on merge start") or later via the merge
552 menu "Run Regular Expression Auto Merge".
553 </para><para>
554 Automatic merge for version control history (also called "log") is also supported.
555 The history automerge can either run immediately when the merge starts by activating the
556 option "Merge version control history on merge start" or later via the merge menu
557 "Automatically Solve History Conflicts".
558 </para><para>
559 Usually the version control history begins with a line containing the keyword "$Log$
560 Usually the version control history begins with a line containing the keyword "Revision 1.5 2006/04/10 08:33:34 joachim99
561 Usually the version control history begins with a line containing the keyword "KDiff3 0.9.89
562 Usually the version control history begins with a line containing the keyword "".
563 This must be matched by the "History start regular expression"-option.
564 KDiff3 detects which subsequent lines are in the history by analysing the leading characters
565 that came before the "$Log$
566 that came before the "Revision 1.5 2006/04/10 08:33:34 joachim99
567 that came before the "KDiff3 0.9.89
568 that came before the ""-keyword. If the same "leading comment" also appears in the following
569 lines, then they are also included in the history.
570 </para><para>
571 During each check-in the VCS writes a unique line specifying version-, date- and time-information
572 followed by lines with user comments.
573 These lines form one history-entry. This history section grows with every check-in and the
574 most recent entries appear at the top (after the history start line).
575 </para><para>
576 When for parallel development two or more developers check-in a branch of the file then
577 the merge history will contain several entries that appear as conflicts during the merge
578 of the branches. Since merging these can become very tedious, KDiff3 offers support with two
579 possible strategies: Just insert the history information from both contributors at the top
580 or sort the history information by a user defined key.
581 </para><para>
582 The just-insert-all-entries-method is easier to configure. KDiff3 just needs a method to
583 detect, which lines belong to one history entry. Most VCS insert an empty line after each
584 history entry. If there are no other empty lines, this is a sufficient criterion for KDiff3.
585 Just set an empty "History entry start regular expression". If the empty line criterion
586 isn't sufficient, you can specify a regular expression to detect the history entry start.
587 </para><para>
588 Note that KDiff3 will remove duplicate history entrys. If a history entry appeared several times
589 in the history of a input file, only one entry will remain in the output.
590 </para><para>
591 If you want to sort the history, then you have to specify how the sort key should be built.
592 Use parentheses in the "History entry start regular expression" to group parts of the regular
593 expression that should later be used for the sort key.
594 Then specify the "History entry start sort key order" specifying a comma "," separated list of
595 numbers referring to the position of the group in the regular expression.
596 </para><para>
597 Because this is not so easy to get right immediately, you are able to test and improve
598 the regular expressions and key-generation in a dedicated dialog by pressing the
599 "Test your regular expressions"-button.
600 </para><para>Example: Assume a history that looks like this:
601 <screen>
602 /**************************************************************************
603 ** HISTORY: $Log$
604 ** HISTORY: Revision 1.5 2006/04/10 08:33:34 joachim99
605 ** HISTORY: KDiff3 0.9.89
606 ** HISTORY:
607 **
608 ** \main\integration_branch_12 2 Apr 2001 10:45:41 tom
609 ** Merged branch simon_branch_15.
610 **
611 ** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry
612 ** Improved the speed for subroutine convertToMesh().
613 ** Fixed crash.
614 **************************************************************************/
615 </screen>
616 The history start line matches the regular expression ".*\$Log.*\$.*". Then follow
617 the history entries.
618 </para><para>
619 The line with the "$Log$
620 The line with the "Revision 1.5 2006/04/10 08:33:34 joachim99
621 The line with the "KDiff3 0.9.89
622 The line with the ""-keyword begins with two "*" after which follows a space.
623 KDiff3 uses the first non-white-space string as "leading comment" and assumes that
624 the history ends in the first line without this leading comment. In this example the
625 last line ends with a string that also starts with two "*", but instead of a space
626 character more "*" follow. Hence this line ends the history.
627 </para><para>
628 If history sorting isn't required then the history entry start line regular expression
629 could look like this. (This line is split in two because it wouldn't fit otherwise.)
630 <screen>
631 \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
632 [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
633 </screen>
634 For details about regular expressions please see the
635 <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details">regular expression documentation by Trolltech</ulink>.
636 Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space.
637 In our example the history entry start contains first the version info with reg. exp. "\\main\\\S+", the date consisting of day "[0-9]+", month "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" and year "[0-9][0-9][0-9][0-9]", the time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" and finally the developers login name ".*".
638 Note that the leading comment (in the example "**") will already be removed by KDiff3
639 before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*".
640 </para><para>
641 If you require a sorted history. Then the sortkey must be calculated. For this the
642 relevant parts in the regular expression must be grouped by parentheses.
643 (The extra parentheses can also stay in if history sorting is disabled.)
644 <screen>
645 \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
646 ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
647 </screen>
648 The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name.
649 But if we want to sort by date and time, we need to construct a key with the elements in a different order of appearance:
650 First the year, followed by month, day, time, version info and name. Hence the sortkey order to specify is "4,3,2,5,1,6".
651 </para><para>
652 Because month names aren't good for sorting ("Apr" would be first) KDiff3 detects in which order
653 the month names were given and uses that number instead ("Apr"->"04").
654 And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting.
655 Finally the resulting sort key for the first history entry start line will be:
656 <screen>
657 2001 04 0002 10:45:41 integration_branch_12 tom
658 </screen>
659 </para><para>
660 For more information also see <link linkend="diffmergeoptions">Diff and Merge Settings</link>.
661 </para>
662 </sect2>
483 </sect1> 663 </sect1>
484 664
485 <sect1 id="navigation"><title>Navigation And Editing</title> 665 <sect1 id="navigation"><title>Navigation And Editing</title>
486 <para> 666 <para>
487 Much navigation will be done with the scroll bars and the mouse but 667 Much navigation will be done with the scroll bars and the mouse but
497 You can toggle between insert and overwrite mode with the insert key. (Default 677 You can toggle between insert and overwrite mode with the insert key. (Default
498 is insert-mode.) 678 is insert-mode.)
499 </para><para> 679 </para><para>
500 A left-mouse-button-click into any summary column will synchronise all 680 A left-mouse-button-click into any summary column will synchronise all
501 windows to show the beginning of the same group of lines (as explained 681 windows to show the beginning of the same group of lines (as explained
502 in section <link linkend="merging">"Merging"</link>). 682 in section <link linkend="synchronise_views">"Setting The Current Group And Synchronising Merge And Diff View Position"</link>).
503 </para><para> 683 </para><para>
504 The button bar also contains seven navigation buttons with which you can 684 The button bar also contains nine navigation buttons with which you can
505 jump to the current/first/last difference, to the next/previous difference 685 jump to the current/first/last difference, to the next/previous difference
506 (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup), 686 (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup),
507 or to the next/previous unsolved conflict. Note that for KDiff3 a "conflict" 687 or to the next/previous unsolved conflict. Note that for KDiff3 a "conflict"
508 that was not automatically solved at the start of the merge stays a "conflict" 688 that was not automatically solved at the start of the merge stays a "conflict"
509 even if it is solved. Hence the necessity to distinguish "unsolved conflicts". 689 even if it is solved. Hence the necessity to distinguish "unsolved conflicts".
510 </para><para> 690 </para>
691 <sect2 id="autoadvance"><title>Auto-Advance</title>
692 <para>
511 There also is a button "Automatically go to next unsolved conflict after 693 There also is a button "Automatically go to next unsolved conflict after
512 source selection" (Auto-Advance). If you enable this, then, when one source 694 source selection" (Auto-Advance). If you enable this, then, when one source
513 is selected, then KDiff3 will jump to and select the next unsolved conflict 695 is selected, KDiff3 will jump to and select the next unsolved conflict
514 automatically. This can help when you always want to choose one source only. 696 automatically. This can help when you always want to choose one source only.
515 When you need both sources, or you want to edit after selecting, then you 697 When you need both sources, or you want to edit after selecting, then you
516 probably want to switch this off. Before proceeding to the next unsolved conflict 698 probably want to switch this off. Before proceeding to the next unsolved conflict
517 KDiff3 shows you the effect of your choice for a short time. This delay is 699 KDiff3 shows you the effect of your choice for a short time. This delay is
518 adjustable in the Diff- &amp; Merge-Settings: You can 700 adjustable in the Diff- &amp; Merge-Settings: You can
519 specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint: 701 specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint:
520 Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts 702 Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts
521 Ctrl-1/2/3 to select A/B/C for many conflicts. 703 Ctrl-1/2/3 to select A/B/C for many conflicts.
522 </para> 704 </para>
705 </sect2>
523 </sect1> 706 </sect1>
524 707
525 <sect1 id="selections"><title>Select, Copy And Paste</title> 708 <sect1 id="selections"><title>Select, Copy And Paste</title>
526 <para> 709 <para>
527 The input windows don't show a cursor, so selections must be made 710 The input windows don't show a cursor, so selections must be made
529 down the mousebutton and moving to the end, where you release the mouse 712 down the mousebutton and moving to the end, where you release the mouse
530 button again. You can also select a word by double clicking it. In the merge 713 button again. You can also select a word by double clicking it. In the merge
531 output editor you can also select via the keyboard by holding the "shift"-button 714 output editor you can also select via the keyboard by holding the "shift"-button
532 and navigation with the cursor keys. 715 and navigation with the cursor keys.
533 </para><para> 716 </para><para>
717 If the selection exceeds the visible range you can move the mouse over the
718 window borders which causes KDiff3 to scroll in that direction.
719 </para><para>
720 For very large selections you can also use the navigation keys while holding down
721 the mouse. E.g. use page up and page down to quickly go to a certain position. At the
722 end position release the mouse button.
723 </para><para>
724 In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A).
725 </para><para>
534 To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert). 726 To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert).
535 But there exists an option "Auto Copy Selection". If this is enabled, 727 But there exists an option "Auto Copy Selection". If this is enabled,
536 then whatever you select is copied immediately and you don't need to explicitely 728 then whatever you select is copied immediately and you don't need to explicitely
537 copy. But pay attention when using this because the contents of the clipboard 729 copy. But pay attention when using this because the contents of the clipboard
538 might then be destroyed accidentally. 730 might then be destroyed accidentally.
539 </para><para> 731 </para><para>
540 "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the 732 "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the
541 selected text and "Paste" (Ctrl-V or Shift-Insert) inserts the text in 733 selected text.
542 the clipboard at the cursorposition or over the current selection. 734 </para><para>
735 "Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the
736 cursorposition or over the current selection.
737 If you paste to either diff input window the contents of the clipboard will
738 be shown in that window and the comparison will restart immediately. This is
739 useful if you want to quickly grab a piece of text from somewhere and
740 compare it with something else without first creating files.
543 </para> 741 </para>
544 </sect1> 742 </sect1>
545 743
546 <sect1 id="saving"><title>Saving</title> 744 <sect1 id="saving"><title>Saving</title>
547 <para> 745 <para>
565 <para> 763 <para>
566 You can search for a string in any text-window of KDiff3. The "Find ..."-command 764 You can search for a string in any text-window of KDiff3. The "Find ..."-command
567 (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string 765 (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string
568 to search for. You can also select the windows which should be searched. 766 to search for. You can also select the windows which should be searched.
569 Searching will always start at the top. Use the "Find Next"-command (F3) 767 Searching will always start at the top. Use the "Find Next"-command (F3)
570 to proceed to the next occurance. If you select to search several windows then the first 768 to proceed to the next occurrence. If you select to search several windows then the first
571 window will be searched from top to bottom before the search starts in the next 769 window will be searched from top to bottom before the search starts in the next
572 window at the top again, etc. 770 window at the top again, etc.
573 </para> 771 </para>
574 </sect1> 772 </sect1>
575 773
774 <sect1 id="printing"><title>Printing</title>
775 <para>
776 KDiff3 supports printing for textfile differences. The "Print..."-command (Ctrl-P)
777 in the File-menu opens a dialog that allows you to select the printer and to adjust
778 other options.
779 </para><para>
780 There are several possibilities to adjust the range. Due to different printing
781 dialogs on different operating systems, the method to achieve certain range selections varies.
782 </para>
783 <variablelist>
784 <varlistentry><term>All:</term><listitem><para>Print everything.</para></listitem></varlistentry>
785 <varlistentry><term>Current:</term><listitem><para>Print a page starting at the first visible line in the window.
786 (On systems without this option this can be achived by specifying page number 10000 for printing.)</para></listitem></varlistentry>
787 <varlistentry><term>Selection:</term><listitem><para>
788 Before choosing to print select text with the mouse (like for copy and paste)
789 in one of the diff input windows to define the start and end line. If no text
790 in one of the diff input windows was selected, then this won't be an available
791 choice. (On systems without this option this can be achived by specifying page
792 number 9999 for printing.)</para></listitem></varlistentry>
793 <varlistentry><term>Range:</term><listitem><para>Specify the first and last page.
794 </para></listitem></varlistentry>
795 </variablelist>
796 <para>
797 Other important options for printing will be taken from the normal options:
798 </para><itemizedlist>
799 <listitem><para>Font, font size</para></listitem>
800 <listitem><para>Show line numbers</para></listitem>
801 <listitem><para>Word wrap</para></listitem>
802 <listitem><para>Colors</para></listitem>
803 <listitem><para>etc.</para></listitem>
804 </itemizedlist>
805 <para>
806 Landscape formatting is also recommended for printing.
807 </para>
808 </sect1>
576 809
577 <sect1 id="options"><title>Options</title> 810 <sect1 id="options"><title>Options</title>
578 <para> 811 <para>
579 Options and the recent-file-list will be saved when you exit the program, 812 Options and the recent-file-list will be saved when you exit the program,
580 and reloaded when you start it. (Menu Settings->Configure KDiff3 ...) 813 and reloaded when you start it. (Menu Settings->Configure KDiff3 ...)
601 <varlistentry><term><emphasis>Color B:</emphasis></term><listitem><para> Usually dark green. </para></listitem></varlistentry> 834 <varlistentry><term><emphasis>Color B:</emphasis></term><listitem><para> Usually dark green. </para></listitem></varlistentry>
602 <varlistentry><term><emphasis>Color C:</emphasis></term><listitem><para> Usually dark magenta. </para></listitem></varlistentry> 835 <varlistentry><term><emphasis>Color C:</emphasis></term><listitem><para> Usually dark magenta. </para></listitem></varlistentry>
603 <varlistentry><term><emphasis>Conflict Color:</emphasis></term><listitem><para> Usually red.</para></listitem></varlistentry> 836 <varlistentry><term><emphasis>Conflict Color:</emphasis></term><listitem><para> Usually red.</para></listitem></varlistentry>
604 <varlistentry><term><emphasis>Current range background color:</emphasis></term><listitem><para> Usually light yellow.</para></listitem></varlistentry> 837 <varlistentry><term><emphasis>Current range background color:</emphasis></term><listitem><para> Usually light yellow.</para></listitem></varlistentry>
605 <varlistentry><term><emphasis>Current range diff background color:</emphasis></term><listitem><para> Usually dark yellow.</para></listitem></varlistentry> 838 <varlistentry><term><emphasis>Current range diff background color:</emphasis></term><listitem><para> Usually dark yellow.</para></listitem></varlistentry>
839 <varlistentry><term><emphasis>Color for manually selected diff ranges:</emphasis></term><listitem><para> Usually orange.</para></listitem></varlistentry>
840 <varlistentry><term><emphasis>Newest file color in directory comparison:</emphasis></term><listitem><para> Usually green.</para></listitem></varlistentry>
841 <varlistentry><term><emphasis>Oldest file color in directory comparison:</emphasis></term><listitem><para> Usually red.</para></listitem></varlistentry>
842 <varlistentry><term><emphasis>Middle age file color in directory comparison:</emphasis></term><listitem><para> Usually dark yellow.</para></listitem></varlistentry>
843 <varlistentry><term><emphasis>Color for missing files in directory comparison:</emphasis></term><listitem><para> Usually black.</para></listitem></varlistentry>
606 </variablelist> 844 </variablelist>
845 <para>
846 Changing the colors for directory comparison will be effective only when starting the next directory comparison.
847 </para>
607 <para> 848 <para>
608 On systems with only 16 or 256 colors some colors are not available in pure 849 On systems with only 16 or 256 colors some colors are not available in pure
609 form. On such systems the "Defaults"-button will choose a pure color. 850 form. On such systems the "Defaults"-button will choose a pure color.
610 </para> 851 </para>
611 </sect2> 852 </sect2>
620 of the previous line is used for the new line. </para></listitem></varlistentry> 861 of the previous line is used for the new line. </para></listitem></varlistentry>
621 <varlistentry><term><emphasis> Auto copy selection:</emphasis></term><listitem><para> Every selection is immediately copied 862 <varlistentry><term><emphasis> Auto copy selection:</emphasis></term><listitem><para> Every selection is immediately copied
622 to the clipboard when active and you needn't explicitely copy it. </para></listitem></varlistentry> 863 to the clipboard when active and you needn't explicitely copy it. </para></listitem></varlistentry>
623 <varlistentry><term><emphasis> Line end style:</emphasis></term><listitem><para> When saving you can select what line 864 <varlistentry><term><emphasis> Line end style:</emphasis></term><listitem><para> When saving you can select what line
624 end style you prefer. The default setting is the common choice for the used operating system. </para></listitem></varlistentry> 865 end style you prefer. The default setting is the common choice for the used operating system. </para></listitem></varlistentry>
625 <varlistentry><term><emphasis> Use locale encoding:</emphasis></term><listitem><para> For displaying foreign characters.
626 Try changing this if some characters of your language aren't displayed correctly. </para></listitem></varlistentry>
627 </variablelist> 866 </variablelist>
628 </sect2> 867 </sect2>
629 868
630 <sect2><title>Diff &amp; Merge Settings</title> 869 <sect2 id="diffmergeoptions"><title>Diff and Merge Settings</title>
631 <para> 870 <para>
632 When comparing files, KDiff3 first it tries to match lines that are equal 871 When comparing files, KDiff3 first it tries to match lines that are equal
633 in all input files. Only during this step it might ignore white space. The 872 in all input files. Only during this step it might ignore white space. The
634 second step compares each line. In this step white space will not be ignored. 873 second step compares each line. In this step white space will not be ignored.
635 Also during the merge white space will not be ignored. 874 Also during the merge white space will not be ignored.
673 (Default is manual choice.) Useful if white-space really isn't important in many files. 912 (Default is manual choice.) Useful if white-space really isn't important in many files.
674 If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts" 913 If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts"
675 in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments" 914 in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments"
676 then this auto-choice also applies for conflicts in numbers or comments. 915 then this auto-choice also applies for conflicts in numbers or comments.
677 </para></listitem></varlistentry> 916 </para></listitem></varlistentry>
917 <varlistentry><term><emphasis>Auto merge regular expression:</emphasis></term><listitem><para>
918 Regular expression for lines where KDiff3 should automatically choose one source. See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
919 </para></listitem></varlistentry>
920 <varlistentry><term><emphasis>Run regular expression auto merge on merge start:</emphasis></term><listitem><para>
921 If activated KDiff3 runs the automatic merge using the "Auto merge regular expression" when a merge is started.
922 </para></listitem></varlistentry>
923 <varlistentry><term><emphasis>History start regular expression:</emphasis></term><listitem><para>
924 Regular expression for the start of the merge history entry.
925 Usually this line contains the "$Log$
926 Usually this line contains the "Revision 1.5 2006/04/10 08:33:34 joachim99
927 Usually this line contains the "KDiff3 0.9.89
928 Usually this line contains the ""-keyword.
929 Default value: ".*\$Log.*\$.*"
930 </para></listitem></varlistentry>
931 <varlistentry><term><emphasis>History entry start regular expression:</emphasis></term><listitem><para>
932 A merge history entry consists of several lines.
933 Specify the regular expression to detect the first line (without the leading comment).
934 Use parentheses to group the keys you want to use for sorting.
935 If left empty, then KDiff3 assumes that empty lines separate history entries.
936 See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
937 </para></listitem></varlistentry>
938 <varlistentry><term><emphasis>History merge sorting:</emphasis></term><listitem><para>
939 Enable version control history sorting.
940 </para></listitem></varlistentry>
941 <varlistentry><term><emphasis>History entry start sort key order:</emphasis></term><listitem><para>
942 Each parentheses used in the regular expression for the history start entry
943 groups a key that can be used for sorting.
944 Specify the list of keys (that are numbered in order of occurrence
945 starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7").
946 If left empty, then no sorting will be done.
947 See also <link linkend="vcskeywordsmergesupport">Automatic Merge ...</link>
948 </para></listitem></varlistentry>
949 <varlistentry><term><emphasis>Merge version control history on merge start:</emphasis></term><listitem><para>
950 If activated KDiff3 runs the automatic history merging using aforementioned options when a merge is started.
951 </para></listitem></varlistentry>
952 <varlistentry><term><emphasis>Test your regular expressions</emphasis></term><listitem><para>
953 This button shows a dialog that allows you to improve and test the regular expressions above.
954 Just copy the respective data from your files into the example lines. The "Match results"
955 will immediately show whether the match succeeds or not.
956 The "Sort key result" will display the key used for history merge sorting.
957 </para></listitem></varlistentry>
958 <varlistentry><term><emphasis>Irrelevant merge command:</emphasis></term><listitem><para>
959 Specify a command of your own that should be called when KDiff3 detects
960 that for a three file merge the file from B doesn't contribute any
961 relevant data that isn't already contained in the file from C.
962 The command is called with the three filenames as parameters.
963 Data matched by the "Auto merge regular expression" or in the
964 history isn't considered relevant.
965 </para></listitem></varlistentry>
678 </variablelist> 966 </variablelist>
679 967
680 </sect2> 968 </sect2>
681 969
682 <sect2><title>Directory Merge</title> 970 <sect2><title>Directory Merge</title>
842 http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink>. 1130 http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink>.
843 A precompiled version for Windows can be found at <ulink url="http://unxutils.sourceforge.net"> 1131 A precompiled version for Windows can be found at <ulink url="http://unxutils.sourceforge.net">
844 http://unxutils.sourceforge.net</ulink>. 1132 http://unxutils.sourceforge.net</ulink>.
845 Note that the following examples assume that the <command>sed</command>-command is in some 1133 Note that the following examples assume that the <command>sed</command>-command is in some
846 directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute 1134 directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute
847 path for the command. Also note that the following examples use the single quotation mark (') which won't work for Windows. 1135 path for the command.
848 On Windows you should use the double quotation marks (") instead. 1136 </para>
849 </para> 1137 <note><para>Also note that the following examples use the single quotation mark (') which won't work for Windows.
1138 On Windows you should use the double quotation marks (") instead.</para></note>
850 <para> 1139 <para>
851 In this context only the <command>sed</command>-substitute-command is used: 1140 In this context only the <command>sed</command>-substitute-command is used:
852 <screen> 1141 <screen>
853 <command>sed</command> 's/<replaceable>REGEXP</replaceable>/<replaceable>REPLACEMENT</replaceable>/<replaceable>FLAGS</replaceable>' 1142 <command>sed</command> 's/<replaceable>REGEXP</replaceable>/<replaceable>REPLACEMENT</replaceable>/<replaceable>FLAGS</replaceable>'
854 </screen> 1143 </screen>
890 Since for <command>sed</command> the "/"-character has a special meaning, it is necessary to place the 1179 Since for <command>sed</command> the "/"-character has a special meaning, it is necessary to place the
891 "\"-character before each "/" in the replacement-string. Sometimes the "\" is required 1180 "\"-character before each "/" in the replacement-string. Sometimes the "\" is required
892 to add or remove a special meaning of certain characters. The single quotation marks (') before 1181 to add or remove a special meaning of certain characters. The single quotation marks (') before
893 and after the substitution-command are important now, because otherwise the shell will 1182 and after the substitution-command are important now, because otherwise the shell will
894 try to interpret some special characters like '#', '$' or '\' before passing them to 1183 try to interpret some special characters like '#', '$' or '\' before passing them to
895 <command>sed</command>. Note that on Windows you will need the double quotation marks (") here. Windows 1184 <command>sed</command>. <emphasis>Note that on Windows you will need the double quotation marks (") here. Windows
896 substitutes other characters like '%', so you might have to experiment a little bit. 1185 substitutes other characters like '%', so you might have to experiment a little bit.</emphasis>
897 </para> 1186 </para>
898 </sect3> 1187 </sect3>
899 <sect3><title>Caseinsensitive Diff</title> 1188 <sect3><title>Caseinsensitive Diff</title>
900 <para> 1189 <para>
901 Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: 1190 Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase:
1005 </sect2> 1294 </sect2>
1006 1295
1007 <sect2><title>Warning</title> 1296 <sect2><title>Warning</title>
1008 <para> 1297 <para>
1009 The preprocessor-commands are often very useful, but as with any option that modifies 1298 The preprocessor-commands are often very useful, but as with any option that modifies
1010 your texts or hides away certain differences automatically, you might accidently overlook 1299 your texts or hides away certain differences automatically, you might accidentally overlook
1011 certain differences and in the worst case destroy important data. 1300 certain differences and in the worst case destroy important data.
1012 </para><para> 1301 </para><para>
1013 For this reason during a merge if a normal preprocessor-command is being used KDiff3 1302 For this reason during a merge if a normal preprocessor-command is being used KDiff3
1014 will tell you so and ask you if it should be disabled or not. 1303 will tell you so and ask you if it should be disabled or not.
1015 But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until 1304 But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until
1023 </sect1> 1312 </sect1>
1024 </chapter> 1313 </chapter>
1025 1314
1026 1315
1027 <chapter id="dirmerge"><title>Directory Comparison and Merge with KDiff3</title> 1316 <chapter id="dirmerge"><title>Directory Comparison and Merge with KDiff3</title>
1028 <sect1 id="dirmergeintro"><title>Introduction</title> 1317 <sect1 id="dirmergeintro"><title>Introduction into Directory Comparison and Merge</title>
1029 <para> 1318 <para>
1030 Often programmers must modify many files in a directory to achieve their 1319 Often programmers must modify many files in a directory to achieve their
1031 purpose. For this KDiff3 also lets you compare and merge complete directories 1320 purpose. For this KDiff3 also lets you compare and merge complete directories
1032 recursively! 1321 recursively!
1033 </para><para> 1322 </para><para>
1099 select a menu entry or the key F7. (More details later.) 1388 select a menu entry or the key F7. (More details later.)
1100 </para> 1389 </para>
1101 </sect2> 1390 </sect2>
1102 </sect1> 1391 </sect1>
1103 1392
1104 <sect1 id="dirmergevisible"><title>Visible Information</title> 1393 <sect1 id="dirmergevisible"><title>Directory Merge Visible Information</title>
1105 <para> 1394 <para>
1106 While reading the directories a message-box appears that informs you of 1395 While reading the directories a message-box appears that informs you of
1107 the progress. If you abort the directory scan, then only files that have 1396 the progress. If you abort the directory scan, then only files that have
1108 been compared until then will be listed. 1397 been compared until then will be listed.
1109 </para><para> 1398 </para><para>
1268 KDiff3 will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace 1557 KDiff3 will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace
1269 conflicts. (The solved-column will only show when comparing or merging three directories.) 1558 conflicts. (The solved-column will only show when comparing or merging three directories.)
1270 </para> 1559 </para>
1271 </sect2> 1560 </sect2>
1272 1561
1273 </sect1> 1562 <sect2 id="selectingvisiblefiles"><title>Selecting Listed Files</title>
1274 1563 <para>
1275 1564 Several options influence which files are listed here. Some are accessible in the
1276 <sect1 id="dothemerge"><title>Doing A Merge</title> 1565 <link linkend="dirmergeoptions">settings dialog</link>. The Directory-menu contains the entries:
1566 </para><para><itemizedlist>
1567 <listitem><para>"Show Identical Files": Files that have been detected equal in all input directories.</para></listitem>
1568 <listitem><para>"Show Different Files": Files that exist in two or more directories but are not equal.</para></listitem>
1569 <listitem><para>"Show Files only in A": Files that exist only in A, but not in B or C.</para></listitem>
1570 <listitem><para>"Show Files only in B": Files that exist only in B, but not in A or B.</para></listitem>
1571 <listitem><para>"Show Files only in C": Files that exist only in C, but not in A or B.</para></listitem>
1572 </itemizedlist></para>
1573 <para>
1574 Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that
1575 exist either in A or in B but not in both, you'll have to activate "Show Files only in A" and "Show Files only in B"
1576 and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C").
1577 The list will be updated immediately to reflect the change.
1578 </para><para>
1579 These options also apply for directories with one exception: Disabling "Show Different Files" will not hide
1580 any complete directories. This will work only for files within.
1581 </para><para>
1582 Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting KDiff3.
1583 </para>
1584 </sect2>
1585
1586 </sect1>
1587
1588
1589 <sect1 id="dothemerge"><title>Doing A Directory Merge</title>
1277 <para> 1590 <para>
1278 You can either merge the currently selected item (file or directory), or all items. 1591 You can either merge the currently selected item (file or directory), or all items.
1279 When you have made all your operation choices (in all subdirectories too) 1592 When you have made all your operation choices (in all subdirectories too)
1280 then you can start the merge. 1593 then you can start the merge.
1281 </para><para> 1594 </para><para>
1291 <itemizedlist> 1604 <itemizedlist>
1292 <listitem><para>"Recursive Directories": If this is off, then items in subdirectories 1605 <listitem><para>"Recursive Directories": If this is off, then items in subdirectories
1293 will not be found.</para></listitem> 1606 will not be found.</para></listitem>
1294 <listitem><para>"Pattern"/"Anti-Pattern": Include/exclude items that match</para></listitem> 1607 <listitem><para>"Pattern"/"Anti-Pattern": Include/exclude items that match</para></listitem>
1295 <listitem><para>"Exclude Hidden Files"</para></listitem> 1608 <listitem><para>"Exclude Hidden Files"</para></listitem>
1296 <listitem><para>"List only Deltas": Files that match in all directories don't appear 1609 <listitem><para><link linkend="selectingvisiblefiles">"Show"-options</link> (Show Identical/Different Files, Files only in A/B/C)</para></listitem>
1297 in the tree, and hence also not in the destination.</para></listitem>
1298 </itemizedlist> 1610 </itemizedlist>
1299 <para> 1611 <para>
1300 (In the current version, you must do a rescan via menu "Directory"->"Rescan" 1612 If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself.
1301 yourself, after changing options affecting the directory scan.) 1613 (The reason for this is that for faster comparison-speed KDiff3 omits the comparison for files suppressed by these criteria.)
1614 If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing
1615 the options-dialog.
1616 </para><para>
1617 Note that when you write to a completely new directory then you usually also want to copy the identical files.
1618 In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs,
1619 then this isn't necessary because the file is already there.
1302 </para><para> 1620 </para><para>
1303 If you are satisfied so far, the rest is easy. 1621 If you are satisfied so far, the rest is easy.
1304 </para><para> 1622 </para><para>
1305 To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu 1623 To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu
1306 or press F7 (which is the shortcut). 1624 or press F7 (which is the default shortcut).
1307 To merge only the current item: Select "Run Operation For Current Item" 1625 To merge only the current item: Select "Run Operation For Current Item"
1308 or press F6. 1626 or press F6.
1309 </para><para> 1627 </para><para>
1310 If due to conflicting filetypes still some items with invalid operations 1628 If due to conflicting filetypes still some items with invalid operations
1311 exist, then a messagebox will appear and these items will be pointed out, 1629 exist, then a messagebox will appear and these items will be pointed out,
1312 so you can select a valid operation for the item. 1630 so you can select a valid operation for the item.
1313 </para><para> 1631 </para><para>
1314 If you merge all items a dialog will appear giving you the options "Do it", "Simulate 1632 If you merge all items a dialog will appear giving you the options "Do it", "Simulate
1315 it" and "Cancel". 1633 it" and "Cancel".
1322 <para> 1640 <para>
1323 Then KDiff3 will run the specified operation for all items. If manual 1641 Then KDiff3 will run the specified operation for all items. If manual
1324 interaction is required (single file merge), then a merge window will open 1642 interaction is required (single file merge), then a merge window will open
1325 (<link linkend="dirmergebigscreenshot">see the big screenshot</link>). 1643 (<link linkend="dirmergebigscreenshot">see the big screenshot</link>).
1326 </para><para> 1644 </para><para>
1327 When you have finished with a file, again select "Start/Continue directory 1645 When you have finished with manually merging a file, again select "Start/Continue directory
1328 merge" or the key F7. If you haven't saved yet, a dialog will ask you to 1646 merge" or the key F7. If you haven't saved it yet, a dialog will ask you to
1329 do so. Then KDiff3 will continue with the next item. 1647 do so. Then KDiff3 will continue with the next item.
1330 </para><para> 1648 </para><para>
1331 When KDiff3 encounters an error, it will tell you so and will show the 1649 When KDiff3 encounters an error, it will tell you so and will show the
1332 verbose-status-information. At the bottom of this list, there will be some 1650 verbose-status-information. At the bottom of this list, there will be some
1333 error messages which should help you to understand the cause of the problem. 1651 error messages which should help you to understand the cause of the problem.
1336 you can choose another operation or solve the problem by other means. 1654 you can choose another operation or solve the problem by other means.
1337 </para><para> 1655 </para><para>
1338 When the merge is complete, then KDiff3 will inform you via a message 1656 When the merge is complete, then KDiff3 will inform you via a message
1339 box. 1657 box.
1340 </para><para> 1658 </para><para>
1341 If some items were merged individually then KDiff3 remembers this (while this 1659 If some items were merged individually before running the directorymerge then
1660 KDiff3 remembers this (while this
1342 merge-session goes on), and doesn't merge them again when later the merge for 1661 merge-session goes on), and doesn't merge them again when later the merge for
1343 all items is run. Even when the merge was skipped or nothing was saved these 1662 all items is run. Even when the merge was skipped or nothing was saved these
1344 items count as completed. Only when you change the merge operation the item 1663 items count as completed. Only when you change the merge operation the
1345 will be merged again. 1664 "Done"-status of the item will be removed and it can be merged again.
1346 </para> 1665 </para>
1347 </sect1> 1666 </sect1>
1348 1667
1349 <sect1 id="dirmergeoptions"><title>Options for Comparing and Merging Directories</title> 1668 <sect1 id="dirmergeoptions"><title>Options for Comparing and Merging Directories</title>
1350 <para> 1669 <para>
1351 The KDiff3-preferences (menu "Settings"-&gt;"Configure KDiff3") now has 1670 The KDiff3-preferences (menu "Settings"-&gt;"Configure KDiff3") has
1352 a section called "Directory Merge" with these options: 1671 a section called "Directory Merge" with these options:
1353 </para> 1672 </para>
1354 1673
1355 <variablelist> 1674 <variablelist>
1356 <varlistentry><term><emphasis>Recursive Directories:</emphasis></term><listitem><para> Select whether to search directories 1675 <varlistentry><term><emphasis>Recursive Directories:</emphasis></term><listitem><para> Select whether to search directories
1357 recursively.</para></listitem></varlistentry> 1676 recursively.</para></listitem></varlistentry>
1358 <varlistentry><term><emphasis>File Pattern(s):</emphasis></term><listitem><para> Only files that match any pattern here will 1677 <varlistentry><term><emphasis>File Pattern(s):</emphasis></term><listitem><para> Only files that match any pattern here will
1359 be put in the tree. More than one pattern may be specified here via using 1678 be put in the tree. More than one pattern may be specified here by using
1360 the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h"). 1679 the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h").
1361 Default is "*". Directories need not match this pattern.</para></listitem></varlistentry> 1680 Default is "*". This pattern is not used on directories.</para></listitem></varlistentry>
1362 <varlistentry><term><emphasis>Anti-Pattern(s):</emphasis></term><listitem><para> Files and directories that match this pattern 1681 <varlistentry><term><emphasis>File Anti-Pattern(s):</emphasis></term><listitem><para> Files that match this pattern
1363 will be excluded from the tree. More than one pattern may be specified here 1682 will be excluded from the tree. More than one pattern may be specified here
1364 via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default 1683 via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default
1365 is "*.orig;*.o".</para></listitem></varlistentry> 1684 is "*.orig;*.o;*.obj".</para></listitem></varlistentry>
1685 <varlistentry><term><emphasis>Directory Anti-Pattern(s):</emphasis></term><listitem><para> Directories that match this pattern
1686 will be excluded from the tree. More than one pattern may be specified here
1687 via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default
1688 is "CVS;deps;.svn".</para></listitem></varlistentry>
1366 <varlistentry><term><emphasis>Use CVS-Ignore:</emphasis></term><listitem><para> 1689 <varlistentry><term><emphasis>Use CVS-Ignore:</emphasis></term><listitem><para>
1367 Ignore files and directories that would also be ignored by CVS. 1690 Ignore files and directories that would also be ignored by CVS.
1368 Many automatically generated files are ignored by CVS. 1691 Many automatically generated files are ignored by CVS.
1369 The big advantage is that this can be directory specific via a local ".cvsignore"-file. 1692 The big advantage is that this can be directory specific via a local ".cvsignore"-file.
1370 (See <ulink url="info:/cvs/cvsignore">info:/cvs/cvsignore</ulink>.)</para></listitem></varlistentry> 1693 (See <ulink url="info:/cvs/cvsignore">info:/cvs/cvsignore</ulink>.)</para></listitem></varlistentry>
1379 then the symbolic links will be compared. When enabled then the link will 1702 then the symbolic links will be compared. When enabled then the link will
1380 be treated like a directory and it will be scanned recursively. (Note that 1703 be treated like a directory and it will be scanned recursively. (Note that
1381 the program doesn't check if the link is "recursive". So for example a directory 1704 the program doesn't check if the link is "recursive". So for example a directory
1382 that contains a link to the directory would cause an infinite loop, and after 1705 that contains a link to the directory would cause an infinite loop, and after
1383 some time when the stack overflows or all memory is used up, crash the program.) 1706 some time when the stack overflows or all memory is used up, crash the program.)
1384 Default is off.</para></listitem></varlistentry>
1385 <varlistentry><term><emphasis>List only deltas:</emphasis></term><listitem><para> Only items that are not equal in all input
1386 directories will be listed and only the changed files are visible. Hence
1387 files that are equal in all directories won't be copied during a merge and
1388 if the destination dir does not contain the files before the merge, you might
1389 miss some files later. (This option is likely to be changed in a later version.)
1390 Default is off.</para></listitem></varlistentry> 1707 Default is off.</para></listitem></varlistentry>
1391 1708 <varlistentry><term><emphasis>Case Sensitive Filename Comparison:</emphasis></term><listitem><para>
1709 Default is false on Windows, true for other operating systems.</para></listitem></varlistentry>
1392 <varlistentry><term><emphasis>File Comparison Mode:</emphasis></term><listitem><para> 1710 <varlistentry><term><emphasis>File Comparison Mode:</emphasis></term><listitem><para>
1393 <variablelist> 1711 <variablelist>
1394 <varlistentry><term><emphasis>Binary Comparison:</emphasis></term><listitem><para> 1712 <varlistentry><term><emphasis>Binary Comparison:</emphasis></term><listitem><para>
1395 This is the default file comparison mode. 1713 This is the default file comparison mode.
1396 </para></listitem></varlistentry> 1714 </para></listitem></varlistentry>
1417 mode the proposed operations will be chosen so that both source directories 1735 mode the proposed operations will be chosen so that both source directories
1418 are equal afterwards. Also the merge result will be written to both directories. 1736 are equal afterwards. Also the merge result will be written to both directories.
1419 Default is off.</para></listitem></varlistentry> 1737 Default is off.</para></listitem></varlistentry>
1420 <varlistentry><term><emphasis>Copy newer instead of merging:</emphasis></term><listitem><para> Instead of merging the proposed 1738 <varlistentry><term><emphasis>Copy newer instead of merging:</emphasis></term><listitem><para> Instead of merging the proposed
1421 operation will copy the newer source if changes happened. (Considered unsafe, 1739 operation will copy the newer source if changes happened. (Considered unsafe,
1422 because it implies that the knowledge, that the other file hasn't been edited 1740 because it implies that you know, that the other file hasn't been edited
1423 too. Check to make sure in every case.) Default is off.</para></listitem></varlistentry> 1741 too. Check to make sure in every case.) Default is off.</para></listitem></varlistentry>
1424 <varlistentry><term><emphasis>Backup files:</emphasis></term><listitem><para> If a file or complete directory is replaced 1742 <varlistentry><term><emphasis>Backup files:</emphasis></term><listitem><para> If a file or complete directory is replaced
1425 by another or is deleted then the original version will be renamed with an 1743 by another or is deleted then the original version will be renamed with an
1426 ".orig" extension. If an old backup file with ".orig" extension already exists 1744 ".orig" extension. If an old backup file with ".orig" extension already exists
1427 then this will be deleted without backup. This also affects the normal merging 1745 then this will be deleted without backup. This also affects the normal merging
1428 of single files, not only in directory-merge mode. Default is on.</para></listitem></varlistentry> 1746 of single files, not only in directory-merge mode. Default is on.</para></listitem></varlistentry>
1429 </variablelist> 1747 </variablelist>
1430 </sect1> 1748 </sect1>
1431 1749
1432 <sect1 id="other"><title>Other Functions</title> 1750 <sect1 id="other"><title>Other Functions in Directory Merge Window</title>
1433 <sect2><title>Split/Full Screen Mode</title> 1751 <sect2><title>Split/Full Screen Mode</title>
1434 <para> 1752 <para>
1435 Usually the directory merge list view remains visible while a single file 1753 Usually the directory merge list view remains visible while a single file
1436 is compared or merged. With the mouse you can move the the splitter bar that 1754 is compared or merged. With the mouse you can move the the splitter bar that
1437 separates the file list from the text-diff windows. If you don't want this, 1755 separates the file list from the text-diff windows. If you don't want this,
1442 </sect2> 1760 </sect2>
1443 <sect2><title>Comparing or Merging a Single File</title> 1761 <sect2><title>Comparing or Merging a Single File</title>
1444 <para> 1762 <para>
1445 Probably you will prefer a simple double mouse click on a file in order 1763 Probably you will prefer a simple double mouse click on a file in order
1446 to compare it. Nevertheless there also exists an entry in the "Directory"-menu. 1764 to compare it. Nevertheless there also exists an entry in the "Directory"-menu.
1447 You can also directly merge a single file, without starting the directory 1765 You can also directly merge a single file by selecting it and
1448 merge via the "Merge single file" in the "Directory"-Menu. On saving the 1766 choosing "Merge current file" in the "Merge"-Menu. On saving the
1449 result, the status will be set to done, and the file will not be merged again 1767 result, the status will be set to done, and the file will not be merged again
1450 if a directory merge is started. 1768 if a directory merge is started.
1451 </para><para> 1769 </para><para>
1452 But note that this status information will be lost when you rerun a directory 1770 But note that this status information will be lost when you rerun a directory
1453 scan: "Directory"-menu: "Rescan" 1771 scan: "Directory"-menu: "Rescan"
1454 </para> 1772 </para>
1455 </sect2> 1773 </sect2>
1774 <sect2><title>Comparing or Merging Files with Different Names</title>
1775 <para>
1776 Sometimes you need to compare or merge files with different names (e.g. the current
1777 file and the backup in the same folder).
1778 </para><para>
1779 Select the exact file by clicking onto the icon in the column A, B or C. The first
1780 file selected thus will be marked with an "A", the second and third with "B" and "C"
1781 regardless on what column they are in. Only up to three files can be chosen like this.
1782 </para><para>
1783 Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely
1784 Selected Files" from the "Directory"-menu. For your convenience these menu entries
1785 also appear as context menu when you right-click the last selected file.
1786 </para><para>
1787 The comparison or merge of a file will happen in the same window.
1788 If this method is used for directories a new window will be opened.
1789 </para></sect2>
1456 </sect1> 1790 </sect1>
1457 </chapter> 1791 </chapter>
1458 1792
1459 <chapter id="misc"> 1793 <chapter id="misc">
1460 <title>Miscellaneous Topics</title> 1794 <title>Miscellaneous Topics</title>
1463 <sect2><title>KIO-Slaves</title> 1797 <sect2><title>KIO-Slaves</title>
1464 <para> 1798 <para>
1465 KDE supports networktransparency via KIO-slaves. KDiff3 uses this 1799 KDE supports networktransparency via KIO-slaves. KDiff3 uses this
1466 for reading input files and for scanning directories. 1800 for reading input files and for scanning directories.
1467 This means that you can specify files and directories on local and 1801 This means that you can specify files and directories on local and
1468 remote ressources via URLs. 1802 remote resources via URLs.
1469 </para><para> 1803 </para><para>
1470 Example: 1804 Example:
1471 </para><para> 1805 </para><para>
1472 <screen> 1806 <screen>
1473 <command>kdiff3</command> test.cpp ftp://ftp.faraway.org/test.cpp 1807 <command>kdiff3</command> test.cpp ftp://ftp.faraway.org/test.cpp
1604 </para></question><answer><para> 1938 </para></question><answer><para>
1605 Lines where only the amount of white space characters is different 1939 Lines where only the amount of white space characters is different
1606 are treated as "equal" at first, while just one different non-white character 1940 are treated as "equal" at first, while just one different non-white character
1607 causes the lines to be "different". If similar lines appear next to each 1941 causes the lines to be "different". If similar lines appear next to each
1608 other, this actually is coincidence but this fortunately is often the case. 1942 other, this actually is coincidence but this fortunately is often the case.
1943 See also <link linkend="manualdiffhelp">Manual Diff Help</link>.
1609 </para></answer></qandaentry> 1944 </para></answer></qandaentry>
1610 1945
1611 <qandaentry><question><para> 1946 <qandaentry><question><para>
1612 Why must all conflicts be solved before the merge result can be saved? 1947 Why must all conflicts be solved before the merge result can be saved?
1613 </para></question><answer><para> 1948 </para></question><answer><para>
1615 window remembers where it begins or ends. This is needed so that conflicts 1950 window remembers where it begins or ends. This is needed so that conflicts
1616 can be solved manually by simply selecting the source button (A, B or C). 1951 can be solved manually by simply selecting the source button (A, B or C).
1617 This information is lost while saving as text and it is too much effort to 1952 This information is lost while saving as text and it is too much effort to
1618 create a special file format that supports saving and restoring all necessary 1953 create a special file format that supports saving and restoring all necessary
1619 information. 1954 information.
1955 </para></answer></qandaentry>
1956
1957 <qandaentry><question><para>
1958 How can I synchronise the diff and merge views, so that all views show the same text position?
1959 </para></question><answer><para>
1960 Click into the summary column left of the text. (<link linkend="synchronise_views">See also here.</link>)
1620 </para></answer></qandaentry> 1961 </para></answer></qandaentry>
1621 1962
1622 <qandaentry><question><para> 1963 <qandaentry><question><para>
1623 Why does the editor in the merge result window not have an "undo"-function? 1964 Why does the editor in the merge result window not have an "undo"-function?
1624 </para></question><answer><para> 1965 </para></question><answer><para>
1647 KDiff3 already uses many colors for difference highlighting. More 1988 KDiff3 already uses many colors for difference highlighting. More
1648 highlighting would be confusing. Use another editor for this. 1989 highlighting would be confusing. Use another editor for this.
1649 </para></answer></qandaentry> 1990 </para></answer></qandaentry>
1650 1991
1651 <qandaentry><question><para> 1992 <qandaentry><question><para>
1993 Can I use KDiff3 to compare OpenOffice.Org, Word, Excel, PDF-, etc. files?
1994 </para></question><answer><para>
1995 Although KDiff3 will analyse any kind of file the result will probably
1996 not be very satisfactory for you.
1997 </para><para>
1998 KDiff3 was made to compare pure text files. OpenOffice, Word, Excel etc.
1999 store much more information in the files (about fonts, pictures, pages,
2000 colors etc.) which KDiff3 doesn't know about. So KDiff3 will
2001 show you the contents of the file interpreted as pure text, but
2002 this might be unreadable or at least it will look very odd.
2003 </para><para>
2004 Since most programs nowadays store their contents in XML-format, you might
2005 be able to read it as pure text. So if the change was only small,
2006 KDiff3 still might help you.
2007 </para><para>
2008 The best solution if you only want to compare the text (without embedded
2009 objects like pictures) is to use "Select All" and "Copy" in your program
2010 to copy the interesting text to the clipoard and then in KDiff3 paste the
2011 text into either diff input window.
2012 (See also <link linkend="selections">Select, Copy And Paste</link>.)
2013 </para></answer></qandaentry>
2014
2015 <qandaentry><question><para>
2016 Where has the the directory option "List only deltas" gone?
2017 </para></question><answer><para>
2018 There are now several <link linkend="selectingvisiblefiles">"Show"-options</link> in the directory menu.
2019 Disabling "Show identical files" will achieve what enabling "List only deltas" used to do.
2020 </para></answer></qandaentry>
2021
2022 <qandaentry><question><para>
2023 How can I make a big selection in the diff input window
2024 because scrolling takes so long?
2025 </para></question><answer><para>
2026 Start the selection as usual (click and hold the left mouse button).
2027 Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down.
2028 (See also <link linkend="selections">Select, Copy And Paste</link>.)
2029 </para></answer></qandaentry>
2030
2031 <qandaentry><question><para>
1652 There is so much information here, but your question is still not answered? 2032 There is so much information here, but your question is still not answered?
1653 </para></question><answer><para> 2033 </para></question><answer><para>
1654 Please send me your question. I appreciate every comment. 2034 Please send me your question. I appreciate every comment.
1655 </para></answer></qandaentry> 2035 </para></answer></qandaentry>
1656 2036
1663 2043
1664 <para> 2044 <para>
1665 &kdiff3; - File and Directory Comparison and Merge Tool 2045 &kdiff3; - File and Directory Comparison and Merge Tool
1666 </para> 2046 </para>
1667 <para> 2047 <para>
1668 Program copyright 2002-2005 Joachim Eibl <email>joachim.eibl at gmx.de</email> 2048 Program copyright 2002-2006 Joachim Eibl <email>joachim.eibl at gmx.de</email>
1669 </para> 2049 </para>
1670 <para> 2050 <para>
1671 Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! 2051 Several cool ideas and bugreports came from colleagues and many people out in the World Wild Web. Thank you!
1672 </para> 2052 </para>
1673 2053
1674 <para> 2054 <para>
1675 Documentation Copyright &copy; 2002-2005 Joachim Eibl <email>joachim.eibl at gmx.de</email> 2055 Documentation Copyright &copy; 2002-2006 Joachim Eibl <email>joachim.eibl at gmx.de</email>
1676 </para> 2056 </para>
1677 2057
1678 <!-- TRANS:CREDIT_FOR_TRANSLATORS --> 2058 <!-- TRANS:CREDIT_FOR_TRANSLATORS -->
1679 2059
1680 &underFDL; <!-- FDL: do not remove --> 2060 &underFDL; <!-- FDL: do not remove -->
1726 </screen> 2106 </screen>
1727 <para> 2107 <para>
1728 <replaceable>kde-dir</replaceable> specifies the directory 2108 <replaceable>kde-dir</replaceable> specifies the directory
1729 containing KDE on your system. If you are not sure, read the README-file for details. 2109 containing KDE on your system. If you are not sure, read the README-file for details.
1730 </para> 2110 </para>
2111 <para>If you don't use KDE don't use <command>configure</command> but follow the instructions for Qt-only systems in the README file.</para>
1731 <para>Since &kdiff3; uses <command>autoconf</command> and 2112 <para>Since &kdiff3; uses <command>autoconf</command> and
1732 <command>automake</command> you should have no trouble compiling it. Should you 2113 <command>automake</command> you should have no trouble compiling it. Should you
1733 run into problems please report them to the &kde; mailing lists.</para> 2114 run into problems please report them to the &kde; mailing lists.</para>
1734 2115
1735 </sect1> 2116 </sect1>