Mercurial > hg > easyhg-kdiff3
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 "<Merge Conflict>", all in red. Because solving | 478 and the line shows "<Merge Conflict>", 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 <No src line> | 511 and no other lines remain in that group, then the text <No src line> |
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 "<Merge Conflict>" will appear in the clipboard if you | 516 The text "<Merge Conflict>" 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- & Merge-Settings: You can | 700 adjustable in the Diff- & 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 & 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"->"Configure KDiff3") now has | 1670 The KDiff3-preferences (menu "Settings"->"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 © 2002-2005 Joachim Eibl <email>joachim.eibl at gmx.de</email> | 2055 Documentation Copyright © 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> |