From 76718abdb2138623102398a10f3228e576dd0ae8 Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 10 Feb 2010 01:27:27 +0000 Subject: Added abandoned KDE3 version of kdiff3 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kdiff3@1088041 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- doc/en/Makefile.am | 5 + doc/en/common/appheader.html | 36 + doc/en/common/artistic-license.html | 165 +++ doc/en/common/bottom-left.png | Bin 0 -> 664 bytes doc/en/common/bottom-middle.png | Bin 0 -> 173 bytes doc/en/common/bottom-right.png | Bin 0 -> 4921 bytes doc/en/common/fdl-license.html | 353 +++++ doc/en/common/fdl-notice.html | 15 + doc/en/common/footer.html | 65 + doc/en/common/gpl-license.html | 381 ++++++ doc/en/common/header.html | 56 + doc/en/common/headerbg.png | Bin 0 -> 492 bytes doc/en/common/kde-default.css | 327 +++++ doc/en/common/kde-localised.css.template | 32 + doc/en/common/kde_gear_64.png | Bin 0 -> 6356 bytes doc/en/common/kde_logo_bg.png | Bin 0 -> 198 bytes doc/en/common/mainfooter.html | 68 + doc/en/common/mainheader.html | 70 + doc/en/common/top-left.png | Bin 0 -> 15483 bytes doc/en/common/top-middle.png | Bin 0 -> 232 bytes doc/en/common/top-right-konqueror.png | Bin 0 -> 14422 bytes doc/en/compilation.html | 11 + doc/en/credits.html | 11 + doc/en/dirbrowser.png | Bin 0 -> 8126 bytes doc/en/dirmerge.html | 25 + doc/en/dirmergebig.png | Bin 0 -> 30842 bytes doc/en/dirmergeoptions.html | 58 + doc/en/dirmergevisible.html | 105 ++ doc/en/documentation.html | 54 + doc/en/dothemerge.html | 65 + doc/en/faq.html | 132 ++ doc/en/features.html | 22 + doc/en/find.html | 10 + doc/en/index.docbook | 2135 ++++++++++++++++++++++++++++++ doc/en/index.html | 16 + doc/en/installation.html | 6 + doc/en/interpretinginformation.html | 68 + doc/en/introduction.html | 32 + doc/en/iteminfo.png | Bin 0 -> 5505 bytes doc/en/kdiff3.1 | 89 ++ doc/en/kpart.html | 22 + doc/en/letter_by_letter.png | Bin 0 -> 1977 bytes doc/en/merge_current.png | Bin 0 -> 184 bytes doc/en/merging.html | 195 +++ doc/en/misc.html | 49 + doc/en/navigation.html | 38 + doc/en/new.png | Bin 0 -> 254 bytes doc/en/open_dialog.png | Bin 0 -> 5414 bytes doc/en/opendialog.html | 23 + doc/en/options.html | 138 ++ doc/en/other.html | 33 + doc/en/pasteinput.html | 20 + doc/en/preprocessors.html | 202 +++ doc/en/printing.html | 20 + doc/en/requirements.html | 10 + doc/en/saving.html | 16 + doc/en/screenshot_diff.png | Bin 0 -> 33590 bytes doc/en/screenshot_merge.png | Bin 0 -> 10423 bytes doc/en/screenshots.html | 15 + doc/en/selections.html | 34 + doc/en/startingdirmerge.html | 22 + doc/en/triple_diff.png | Bin 0 -> 2426 bytes doc/en/white_space.png | Bin 0 -> 1923 bytes 63 files changed, 5249 insertions(+) create mode 100644 doc/en/Makefile.am create mode 100644 doc/en/common/appheader.html create mode 100644 doc/en/common/artistic-license.html create mode 100644 doc/en/common/bottom-left.png create mode 100644 doc/en/common/bottom-middle.png create mode 100644 doc/en/common/bottom-right.png create mode 100644 doc/en/common/fdl-license.html create mode 100644 doc/en/common/fdl-notice.html create mode 100644 doc/en/common/footer.html create mode 100644 doc/en/common/gpl-license.html create mode 100644 doc/en/common/header.html create mode 100644 doc/en/common/headerbg.png create mode 100644 doc/en/common/kde-default.css create mode 100644 doc/en/common/kde-localised.css.template create mode 100644 doc/en/common/kde_gear_64.png create mode 100644 doc/en/common/kde_logo_bg.png create mode 100644 doc/en/common/mainfooter.html create mode 100644 doc/en/common/mainheader.html create mode 100644 doc/en/common/top-left.png create mode 100644 doc/en/common/top-middle.png create mode 100644 doc/en/common/top-right-konqueror.png create mode 100644 doc/en/compilation.html create mode 100644 doc/en/credits.html create mode 100644 doc/en/dirbrowser.png create mode 100644 doc/en/dirmerge.html create mode 100644 doc/en/dirmergebig.png create mode 100644 doc/en/dirmergeoptions.html create mode 100644 doc/en/dirmergevisible.html create mode 100644 doc/en/documentation.html create mode 100644 doc/en/dothemerge.html create mode 100644 doc/en/faq.html create mode 100644 doc/en/features.html create mode 100644 doc/en/find.html create mode 100644 doc/en/index.docbook create mode 100644 doc/en/index.html create mode 100644 doc/en/installation.html create mode 100644 doc/en/interpretinginformation.html create mode 100644 doc/en/introduction.html create mode 100644 doc/en/iteminfo.png create mode 100644 doc/en/kdiff3.1 create mode 100644 doc/en/kpart.html create mode 100644 doc/en/letter_by_letter.png create mode 100644 doc/en/merge_current.png create mode 100644 doc/en/merging.html create mode 100644 doc/en/misc.html create mode 100644 doc/en/navigation.html create mode 100644 doc/en/new.png create mode 100644 doc/en/open_dialog.png create mode 100644 doc/en/opendialog.html create mode 100644 doc/en/options.html create mode 100644 doc/en/other.html create mode 100644 doc/en/pasteinput.html create mode 100644 doc/en/preprocessors.html create mode 100644 doc/en/printing.html create mode 100644 doc/en/requirements.html create mode 100644 doc/en/saving.html create mode 100644 doc/en/screenshot_diff.png create mode 100644 doc/en/screenshot_merge.png create mode 100644 doc/en/screenshots.html create mode 100644 doc/en/selections.html create mode 100644 doc/en/startingdirmerge.html create mode 100644 doc/en/triple_diff.png create mode 100644 doc/en/white_space.png (limited to 'doc/en') diff --git a/doc/en/Makefile.am b/doc/en/Makefile.am new file mode 100644 index 0000000..cd97965 --- /dev/null +++ b/doc/en/Makefile.am @@ -0,0 +1,5 @@ +KDE_DOCS = kdiff3 +KDE_LANG = en +man1_MANS=kdiff3.1 + + diff --git a/doc/en/common/appheader.html b/doc/en/common/appheader.html new file mode 100644 index 0000000..8179348 --- /dev/null +++ b/doc/en/common/appheader.html @@ -0,0 +1,36 @@ + + + + + $title ($projectname) + + +
+ + + + + + +
+ + +

$projectname API Documentation

+
+ + + + + + + + + + + + + +
+
+
+
diff --git a/doc/en/common/artistic-license.html b/doc/en/common/artistic-license.html new file mode 100644 index 0000000..2069b4e --- /dev/null +++ b/doc/en/common/artistic-license.html @@ -0,0 +1,165 @@ + + + + The "Artistic License" + + + + + + + + + +

The "Artistic License"

+ +

Preamble

+ +

The intent of this document is to state the conditions under + which a Package may be copied, such that the Copyright Holder + maintains some semblance of artistic control over the + development of the package, while giving the users of the + package the right to use and distribute the Package in a + more-or-less customary fashion, plus the right to make + reasonable modifications.

+ +

Definitions

+ + +

"Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification.

+ +

"Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes of + the Copyright Holder as specified below.

+ +

"Copyright Holder" is whoever is named in the copyright or + copyrights for the package.

+ +

"You" is you, if you're thinking about copying or distributing + this Package.

+ +

"Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people + involved, and so on. (You will not be required to justify it to + the Copyright Holder, but only to the computing community at + large as a market that must bear the fee.)

+ +

"Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the + item. It also means that recipients of the item may redistribute + it under the same conditions they received it.

+ + +
    +
  1. You may make and give away verbatim copies of the source + form of the Standard Version of this Package without + restriction, provided that you duplicate all of the original + copyright notices and associated disclaimers.
  2. + +
  3. You may apply bug fixes, portability fixes and other + modifications derived from the Public Domain or from the + Copyright Holder. A Package modified in such a way shall still + be considered the Standard Version.
  4. + +
  5. You may otherwise modify your copy of this Package in any + way, provided that you insert a prominent notice in each + changed file stating how and when you changed that file, and + provided that you do at least ONE of the following: +
      +
    1. place your modifications in the Public Domain or + otherwise make them Freely Available, such as by posting + said modifications to Usenet or an equivalent medium, or + placing the modifications on a major archive site such as + uunet.uu.net, or by allowing the Copyright Holder to + include your modifications in the Standard Version of the + Package.
    2. + +
    3. use the modified Package only within your corporation or + organization.
    4. + +
    5. rename any non-standard executables so the names do not + conflict with standard executables, which must also be + provided, and provide a separate manual page for each + non-standard executable that clearly documents how it + differs from the Standard Version. d. make other + distribution arrangements with the Copyright Holder.
    6. +
    +
  6. +
+ +

You may distribute the programs of this Package in object code + or executable form, provided that you do at least ONE of the + following:

+ +
    +
  1. distribute a Standard Version of the executables and library + files, together with instructions (in the manual page or + equivalent) on where to get the Standard Version.
  2. + +
  3. accompany the distribution with the machine-readable source + of the Package with your modifications.
  4. + +
  5. give non-standard executables non-standard names, and + clearly document the differences in manual pages (or + equivalent), together with instructions on where to get the + Standard Version.
  6. + +
  7. make other distribution arrangements with the Copyright + Holder.
  8. +
+ +

You may charge a reasonable copying fee for any distribution of + this Package. You may charge any fee you choose for support of + this Package. You may not charge a fee for this Package + itself. However, you may distribute this Package in aggregate + with other (possibly commercial) programs as part of a larger + (possibly commercial) software distribution provided that you do + not advertise this Package as a product of your own. You may + embed this Package's interpreter within an executable of yours + (by linking); this shall be construed as a mere form of + aggregation, provided that the complete Standard Version of the + interpreter is so embedded.

+ +

The scripts and library files supplied as input to or produced + as output from the programs of this Package do not automatically + fall under the copyright of this Package, but belong to whomever + generated them, and may be sold commercially, and may be + aggregated with this Package. If such scripts or library files + are aggregated with this Package via the so-called "undump" or + "unexec" methods of producing a binary executable image, then + distribution of such an image shall neither be construed as a + distribution of this Package nor shall it fall under the + restrictions of Paragraphs 3 and 4, provided that you do not + represent such an executable image as a Standard Version of this + Package.

+ +

C subroutines (or comparably compiled subroutines in other + languages) supplied by you and linked into this Package in order + to emulate subroutines and variables of the language defined by + this Package shall not be considered part of this Package, but + are the equivalent of input as in Paragraph 6, provided these + subroutines do not change the language in any way that would + cause it to fail the regression tests for the language.

+ +

Aggregation of this Package with a commercial distribution is + always permitted provided that the use of this Package is + embedded; that is, when no overt attempt is made to make this + Package's interfaces visible to the end user of the commercial + distribution. Such use shall not be construed as a distribution + of this Package.

+ +

The name of the Copyright Holder may not be used to endorse or + promote products derived from this software without specific + prior written permission.

+ +

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + PURPOSE.

+ +
The End
+ + diff --git a/doc/en/common/bottom-left.png b/doc/en/common/bottom-left.png new file mode 100644 index 0000000..254e4f8 Binary files /dev/null and b/doc/en/common/bottom-left.png differ diff --git a/doc/en/common/bottom-middle.png b/doc/en/common/bottom-middle.png new file mode 100644 index 0000000..eddbc9c Binary files /dev/null and b/doc/en/common/bottom-middle.png differ diff --git a/doc/en/common/bottom-right.png b/doc/en/common/bottom-right.png new file mode 100644 index 0000000..178bf3c Binary files /dev/null and b/doc/en/common/bottom-right.png differ diff --git a/doc/en/common/fdl-license.html b/doc/en/common/fdl-license.html new file mode 100644 index 0000000..cb1f8a0 --- /dev/null +++ b/doc/en/common/fdl-license.html @@ -0,0 +1,353 @@ + + + + GNU Free Documentation License - version 1.1 + + + + + + + + + +

GNU Free Documentation License

+ Version 1.1, March 2000 + +

Copyright (C) 2000 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed.

+ +

0. Preamble

+ +

The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others.

+ +

This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software.

+ +

We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference.

+ +

1. Applicability And Definitions

+ +

This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you".

+ +

A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language.

+ +

A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them.

+ +

The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License.

+ +

The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License.

+ +

A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque".

+ +

Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only.

+ +

The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text.

+ +

2. Verbatim Copying

+ +

You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3.

+ +

You may also lend copies, under the same conditions stated above, and +you may publicly display copies.

+ +

3. Copying In Quantity

+ +

If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects.

+ +

If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages.

+ +

If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public.

+ +

It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document.

+ +

4. Modifications

+ +

You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version:

+ +
    +
  1. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous + version if the original publisher of that version gives + permission.
  2. + +
  3. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in the + Modified Version, together with at least five of the principal + authors of the Document (all of its principal authors, if it has + less than five).
  4. + +
  5. State on the Title page the name of the publisher of the Modified + Version, as the publisher.
  6. + +
  7. Preserve all the copyright notices of the Document.
  8. + +
  9. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices.
  10. + +
  11. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum + below.
  12. + +
  13. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's license + notice.
  14. + +
  15. Include an unaltered copy of this License.
  16. + +
  17. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence.
  18. + +
  19. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission.
  20. + +
  21. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein.
  22. + +
  23. Preserve all the Invariant Sections of the Document, unaltered in + their text and in their titles. Section numbers or the equivalent + are not considered part of the section titles.
  24. + +
  25. Delete any section entitled "Endorsements". Such a section may + not be included in the Modified Version.
  26. + +
  27. Do not retitle any existing section as "Endorsements" or to + conflict in title with any Invariant Section.
  28. +
+ +

If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles.

+ +

You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard.

+ +

You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one.

+ +

The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version.

+ +

5. Combining Documents

+ +

You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice.

+ +

The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work.

+ +

In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements."

+ +

6. Collections Of Documents

+ +

You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects.

+ +

You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document.

+ +

7. Aggregation With Independent Works

+ +

A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document.

+ +

If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate.

+ +

8. Translation

+ +

Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail.

+ +

9. Termination

+ +

You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance.

+ +

10. Future Revisions Of This License

+ +

The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http:///www.gnu.org/copyleft/.

+ +

Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation.

+ + diff --git a/doc/en/common/fdl-notice.html b/doc/en/common/fdl-notice.html new file mode 100644 index 0000000..44a1c6c --- /dev/null +++ b/doc/en/common/fdl-notice.html @@ -0,0 +1,15 @@ + + +FDL Notice + + + + +

Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or any +later version published by the Free Software Foundation; with no Invariant +Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy +of the license is included here.

+ + + diff --git a/doc/en/common/footer.html b/doc/en/common/footer.html new file mode 100644 index 0000000..b06dfb8 --- /dev/null +++ b/doc/en/common/footer.html @@ -0,0 +1,65 @@ +
+ + + + + + + + + + + + + + + + + KDE Home | + KDE Accessibility Home | + Description of Access Keys + + + +
+ + + + + + + + diff --git a/doc/en/common/gpl-license.html b/doc/en/common/gpl-license.html new file mode 100644 index 0000000..26ae3af --- /dev/null +++ b/doc/en/common/gpl-license.html @@ -0,0 +1,381 @@ + + + + GNU General Public License + + + + + + + + + +

GNU General Public License

+

Version 2, June 1991

+ +

Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed.

+ +

Preamble

+ +

The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too.

+ +

When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things.

+ +

To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it.

+ +

For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights.

+ +

We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software.

+ +

Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations.

+ +

Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all.

+ +

The precise terms and conditions for copying, distribution and +modification follow.

+ +

GNU General Public License
+Terms And Conditions For Copying, Distribution And Modification

+ +

0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you".

+ +

Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does.

+ +

1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program.

+ +

You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee.

+ +

2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions:

+ +
    +
  1. +

    You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change.

    +
  2. + +
  3. +

    You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License.

    +
  4. + +
  5. +

    If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.)

    +
  6. +
+ +

These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it.

+ +

Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program.

+ +

In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License.

+ +

3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following:

+ +
    +
  1. +

    Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or,

    +
  2. + +
  3. +

    Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or,

    +
  4. + +
  5. +

    Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.)

    +
  6. +
+ +

The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable.

+ +

If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code.

+ +

4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance.

+ +

5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it.

+ +

6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License.

+ +

7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program.

+ +

If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances.

+ +

It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice.

+ +

This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License.

+ +

8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License.

+ +

9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns.

+ +

Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation.

+ +

10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally.

+ +

No Warranty

+ +

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION.

+ +

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES.

+ +
END OF TERMS AND CONDITIONS
+ +
+ +

How to Apply These Terms to Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms.

+ + +

To do so, attach the following notices to the program. It is +safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found.

+ + +
    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ +

Also add information on how to contact you by electronic and paper +mail.

+ +

If the program is interactive, make it output a short notice like this +when it starts in an interactive mode:

+ +
    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+ +

The hypothetical commands "show w" and "show c" should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than "show w" and "show c"; they could even be +mouse-clicks or menu items--whatever suits your program.

+ +

You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names:

+ +
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+ +

This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License.

+ + + + + diff --git a/doc/en/common/header.html b/doc/en/common/header.html new file mode 100644 index 0000000..df06da8 --- /dev/null +++ b/doc/en/common/header.html @@ -0,0 +1,56 @@ + + + + + + $title ($projectname) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + diff --git a/doc/en/common/headerbg.png b/doc/en/common/headerbg.png new file mode 100644 index 0000000..b72738a Binary files /dev/null and b/doc/en/common/headerbg.png differ diff --git a/doc/en/common/kde-default.css b/doc/en/common/kde-default.css new file mode 100644 index 0000000..35e9d4d --- /dev/null +++ b/doc/en/common/kde-default.css @@ -0,0 +1,327 @@ +/* + KDE-wide default CSS for HTML documentation (all media types). + Copyright (C) 2000 Frederik Fouvry + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Send comments, suggestions, etc. to Frederik Fouvry + . */ + +/* + Important note: these setting may be overridden by localised CSS. Do not + add here any localization-sensitive style declarations. + + Any updates should be validated, e.g. http://jigsaw.w3.org/css-validator/ */ + +/* Note: "should be inherit" means that in a proper browser inherit should work. + Somehow Netscape manages to interpret "inherit" as bright green. + Yuck. */ + +body { + background: white none; + color: black; + font-family: sans-serif; + padding: 0; + margin: 0; +} + +.legalnotice, .copyright { + padding: 0; + margin: 0; +} + +.abstract { + font-weight: bolder; + padding-right: 1em; +} + +.toc, .list-of-tables { + padding-left: 1em; +} + +.sect1, .chapter, .synopsis, .appendix, .preface, .article, .refsect1, .index, .glossary, .section { + padding: 1em; +} + +.toc .chapter { +padding: 0em 0em 0em 1em; +} + +.author { + color: rgb(82,80,82); + font-weight: bolder; + padding: 0; + margin: 0; +} + +.othercredit { + line-height: 1em; +} + +.chapter .sect1, .chapter .titlepage, .sect1 .titlepage, .article .titlepage { + padding: 0em; +} + +.titlepage { + padding-left: 1em; + padding-right: 1em; +} + +/* Links in Navigation */ + +.navLeft a:link, .navCenter a:link, .navRight a:link, .header a:link, .header a:visited, .bottom-nav a:link, .bottom-nav a:visited { + color: #41597A; + font-weight: bold; +} + + +/* Nice link colors for the main text */ + +:link { + color: #41597A; +} + +:visited { + color: #597ba8; +} + +.navLeft { + position: absolute; + left: 20px; +} + +.navRight { + position: absolute; + right: 20px; +} + +.navCenter { + text-align: center; + align: center; +} + +.bannerBottomLeft { + position: absolute; left: 0px; +} + +.bannerBottomRight { + position: absolute; right: 0px; +} + +.header { + background: #3E91EB none; + border-bottom: 1px solid #206dcd; + border-top: 1px solid white; + color: white; + font-size: small; + height: 1.7em; + line-height: 1em; + margin: 0px; + padding-bottom: 0px; + padding-left: 1em; + padding-right: 0px; + padding-top: 0px; + vertical-align: middle; +} + +.bottom-nav { + background-color: #3E91EB; + border-bottom: 1px solid #206dcd; + border-top: 1px solid white; + color: white; + font-size: small; + height: 1.7em; + line-height: 1em; + margin: 0px; + padding-bottom: 0px; + padding-left: 1em; + padding-right: 0px; + padding-top: 10px; + vertical-align: middle; +} + +#logo { + background: url('kde_logo_bg.png') transparent repeat; +} + +/* A little bit of padding makes the tables for keybindings etc much easier to read */ + +table { + padding: 5px; +} + +dl { + margin-top: 0em; + margin-bottom: 0.5em; +} + +dt { + margin-top: 1em; +} +div.toc dt { + margin-top: 0px; +} +div.screenshot { + margin-bottom: 1em; + margin-top: 1em; +} + +div.informalexample { + border-style: dotted; + padding: 10px; +} + +/* But no padding for navigation elements */ + +.toplogo, .navbackground { + padding: 0px; +} + +table.programlisting +table.screen { + border-style: none; + background-color: rgb(224,224,224); + table-layout: auto; /* 100%? */ + color: rgb(0,0,0); /* should be inherit */ +} + +/* Same as previous block, but more general (previous is HTML only) + Not all browsers understand this yet. + TABLE[class~=programlisting] + TABLE[class~=screen] { border-style: none; + background-color: rgb(224,224,224); + table-layout: auto; + color: inherit; +} +*/ + +p { + text-align: justify; +} + +/* More specific settings */ +/* Temporary patch: browsers break on bad HTML */ +/* P, H1, H2, H3, H4, H5, TD, TH { font-family: Helvetica, Arial, sans-serif; + } */ + +p, h1, h2, h3, h4, h5, h6, td, th { + font-family: sans-serif; +} + +/* Visual cues for GUI elements etc in the text */ + +.guimenu, .guimenuitem, .guisubmenu { + background-color: rgb(250,250,250); + color: rgb(0,0,0); /* should be inherit */ +} + +.guilabel, .interface, .guibutton { + background-color: rgb(250,250,250); + color: rgb(0,0,0); /* should be inherit */ +} + +.shortcut { + background-color: rgb(250,250,250); + color: rgb(0,0,0); /* should be inherit */ +} + +.shortcut .keycap { + background-color: rgb(250,250,250); + color: rgb(0,0,0); /* should be inherit */ +} + +.question { + font-weight: bolder; +} + +.accel { + background-color: rgb(250,250,250); + color: rgb(0,0,0); + text-decoration: underline; +} + +.option, .command { + background-color: rgb(255,255,255); + color: rgb(0,96,160); + font-weight: bold; +} + +h1, h2, h3, h4, h5, h6 { + color: rgb(82,80,82); + background-color: transparent; +} + +.arg, .parameter, .replaceable { + background-color: rgb(255,255,255); + color: rgb(0,128,64); + font-style: italic; +} + +.screen, .programlisting { + background-color: rgb(250,250,250); + color: rgb(0,0,0); /* should be inherit */ + border-style: dotted; + border-color: rgb(0,0,0); + border-width: thin; + padding: 5px; +} + + +/* This one is set in inches because the admonitions are set in inches + and they're more difficult to change. We can live with it in here, + for the meantime, it gives consistent margins */ + +.example { + margin-left: 0.5in; + margin-right: 0.5in; +} + +div.mediaobject { + /* float: right; */ + /* might make it much nicer. although someone has to + understand the rules ;-) You also don't want it to be + surrounded by text it doesn't refer to ... But that + may be among others a question of writing style. */ + text-align: center; /* a bit of a hack: it should + position _images_ */ +} + +.caption { + margin: 0em 2em 3em 2em; + text-align: center; +} + +.inlinemediaobject { + vertical-align: baseline; + padding-right: 1em; + padding-left: 1em; +} + +/* An idea that could be nice: a search engine looking for specific +classes could display them in some conspicuous color. All that is +needed is an on the fly generated style element/style sheet. */ + +/* Only used in the hand-made HTML license texts */ +body.license { + background-color: rgb(255,255,255); + text-align: justify; + color: rgb(0,0,0); +} +pre.license { + background-color: rgb(255,255,255); + font-family: monospace; + color: rgb(0,0,0); +} + diff --git a/doc/en/common/kde-localised.css.template b/doc/en/common/kde-localised.css.template new file mode 100644 index 0000000..abcd1ec --- /dev/null +++ b/doc/en/common/kde-localised.css.template @@ -0,0 +1,32 @@ +/* + KDE CSS for <**languagecountry**> HTML documentation (all media types). + Copyright (C) 2000 <**authorname**> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + Send comments, suggestions, etc. to <**authorcontactdetails**>. +*/ + +/* + These settings will override kde-default.css. + + Any updates should be validated, e.g. http://jigsaw.w3.org/css-validator/ + + Check out http://www.richinstyle.com/ where many of the declarations and + setup in the KDE CSS are obtained from. In fact, do not change anything + without checking so on those pages whether it is wise to do. +*/ + +:lg(**language**) { } diff --git a/doc/en/common/kde_gear_64.png b/doc/en/common/kde_gear_64.png new file mode 100644 index 0000000..ee74c3b Binary files /dev/null and b/doc/en/common/kde_gear_64.png differ diff --git a/doc/en/common/kde_logo_bg.png b/doc/en/common/kde_logo_bg.png new file mode 100644 index 0000000..5ab7542 Binary files /dev/null and b/doc/en/common/kde_logo_bg.png differ diff --git a/doc/en/common/mainfooter.html b/doc/en/common/mainfooter.html new file mode 100644 index 0000000..a2d753e --- /dev/null +++ b/doc/en/common/mainfooter.html @@ -0,0 +1,68 @@ +
+ + +
+ + + + +
+ +
+This file is part of the documentation for $projectname $projectnumber.
+Documentation copyright © 1996-2005 the KDE developers.
+Generated on $datetime by +doxygen $doxygenversion written +by Dimitri van Heesch, © 1997-2003 +

+KDE's Doxygen guidelines are available online. +Questions about the reference manuals should be sent to +Adriaan de Groot +or +Allen Winter. +

+
+ +
 
+ + + + KDE Home | + KDE Accessibility Home | + Description of Access Keys + + + +
+ + + + + + + + diff --git a/doc/en/common/mainheader.html b/doc/en/common/mainheader.html new file mode 100644 index 0000000..4ea02fe --- /dev/null +++ b/doc/en/common/mainheader.html @@ -0,0 +1,70 @@ + + + + + + $projectname + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + diff --git a/doc/en/common/top-left.png b/doc/en/common/top-left.png new file mode 100644 index 0000000..95f055d Binary files /dev/null and b/doc/en/common/top-left.png differ diff --git a/doc/en/common/top-middle.png b/doc/en/common/top-middle.png new file mode 100644 index 0000000..fbebf6a Binary files /dev/null and b/doc/en/common/top-middle.png differ diff --git a/doc/en/common/top-right-konqueror.png b/doc/en/common/top-right-konqueror.png new file mode 100644 index 0000000..ca1d974 Binary files /dev/null and b/doc/en/common/top-right-konqueror.png differ diff --git a/doc/en/compilation.html b/doc/en/compilation.html new file mode 100644 index 0000000..9974fea --- /dev/null +++ b/doc/en/compilation.html @@ -0,0 +1,11 @@ +Compilation and Installation
Compilation and Installation

Compilation and Installation

In order to compile and install KDiff3 on a system with KDE, type the +following in the base directory of the KDiff3 distribution:

% ./configure --prefix=kde-dir
+% make
+% make install
+

+kde-dir specifies the directory +containing KDE on your system. If you are not sure, read the README-file for details. +

If you don't use KDE don't use configure but follow the instructions for Qt-only systems in the README file.

Since KDiff3 uses autoconf and +automake you should have no trouble compiling it. Should you +run into problems please report them to the KDE mailing lists.



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/credits.html b/doc/en/credits.html new file mode 100644 index 0000000..ceb4d5b --- /dev/null +++ b/doc/en/credits.html @@ -0,0 +1,11 @@ +Chapter 6. Credits and License
Credits and License

Chapter 6. Credits and License

+KDiff3 - File and Directory Comparison and Merge Tool +

+Program copyright 2002-2007 Joachim Eibl +

+Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! +

+Documentation Copyright (c) 2002-2007 Joachim Eibl +

This documentation is licensed under the terms of the GNU Free Documentation +License.

This program is licensed under the terms of the GNU General Public License.



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/dirbrowser.png b/doc/en/dirbrowser.png new file mode 100644 index 0000000..d3c63b2 Binary files /dev/null and b/doc/en/dirbrowser.png differ diff --git a/doc/en/dirmerge.html b/doc/en/dirmerge.html new file mode 100644 index 0000000..f83a481 --- /dev/null +++ b/doc/en/dirmerge.html @@ -0,0 +1,25 @@ +Chapter 3. Directory Comparison and Merge with KDiff3
Directory Comparison and Merge with KDiff3

Chapter 3. Directory Comparison and Merge with KDiff3

Introduction into Directory Comparison and Merge

+ Often programmers must modify many files in a directory to achieve their + purpose. For this KDiff3 also lets you compare and merge complete directories + recursively! +

+ Even though comparing and merging directories seems to be quite obvious, + there are several details that you should know about. Most important is of + course the fact that now many files might be affected by each operation. + If you don't have backups of your original data, then it can be very hard + or even impossible to return to the original state. So before starting a merge, + make sure that your data is safe, and going back is possible. If you make + an archive or use some version control system is your decision, but even + experienced programmers and integrators need the old sources now and then. + And note that even though I (the author of KDiff3) try to do my best, I can't + guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY + whatsoever for this program. So be humble and always keep in mind: +

+ To err is human, but to really mess things up you need a computer. +

+So this is what this program can do for you: KDiff3 ... +

  • ... reads and compares two or three directories recursively,

  • ... takes special care of symbolic links,

  • ... lets you browse files on mouse double click,

  • ... for each item proposes a merge operation, which you can change + before starting the directory merge,

  • ... lets you simulate the merge and lists the actions that would + take place, without actually doing them,

  • ... lets you really do the merge, and lets you interact whenever + manual interaction is needed,

  • ... lets you run the selected operation for all items (key F7) or the selected item (key F6),

  • ... lets you continue the merge after manual interaction with key F7,

  • ... optionally creates backups, with the ".orig" extension,

  • ...



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/dirmergebig.png b/doc/en/dirmergebig.png new file mode 100644 index 0000000..b26b65c Binary files /dev/null and b/doc/en/dirmergebig.png differ diff --git a/doc/en/dirmergeoptions.html b/doc/en/dirmergeoptions.html new file mode 100644 index 0000000..9d126b3 --- /dev/null +++ b/doc/en/dirmergeoptions.html @@ -0,0 +1,58 @@ +Options for Comparing and Merging Directories
Options for Comparing and Merging Directories

Options for Comparing and Merging Directories

+ The KDiff3-preferences (menu "Settings"->"Configure KDiff3") has + a section called "Directory Merge" with these options: +

Recursive Directories:

Select whether to search directories + recursively.

File Pattern(s):

Only files that match any pattern here will + be put in the tree. More than one pattern may be specified here by using + the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h"). + Default is "*". This pattern is not used on directories.

File Anti-Pattern(s):

Files that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "*.orig;*.o;*.obj".

Directory Anti-Pattern(s):

Directories that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "CVS;deps;.svn".

Use CVS-Ignore:

+ Ignore files and directories that would also be ignored by CVS. + Many automatically generated files are ignored by CVS. + The big advantage is that this can be directory specific via a local ".cvsignore"-file. + (See info:/cvs/cvsignore.)

Find Hidden Files and Directories:

On some file systems files + have an "Hidden"-attribute. On other systems a filename starting with a dot + "." causes it to be hidden. This option allows you to decide whether to + include these files in the tree or not. Default is on.

Follow File Links:

For links to files: When disabled, then + the symbolic links are compared. When enabled, then the files behind the + links are compared. Default is off.

Follow Directory Links:

For links to directories: When disabled, + then the symbolic links will be compared. When enabled then the link will + be treated like a directory and it will be scanned recursively. (Note that + the program doesn't check if the link is "recursive". So for example a directory + that contains a link to the directory would cause an infinite loop, and after + some time when the stack overflows or all memory is used up, crash the program.) + Default is off.

Case Sensitive Filename Comparison:

+ Default is false on Windows, true for other operating systems.

File Comparison Mode:

+

Binary Comparison:

+ This is the default file comparison mode. +

Full Analysis:

+ Do a full analysis of each file and show the statistics information columns. + (Number of solved, unsolved, nonwhite and white conflicts.) + The full analysis is slower than a simple binary analysis, and much + slower when used on files that don't contain text. + (Specify the appropriate file-antipatterns.) +

Trust the modification date:

If you compare big directories + over a slow network, it might be faster to compare the modification dates + and file length alone. But this speed improvement comes with the price of + a little uncertainty. Use this option with care. Default is off.

Trust the size:

+ Similar to trusting the modification date. No real comparison happens. Two + files are considered equal if their file-sizes are equal. This is useful + when the file-copy operation didn't preserve the modification date. + Use this option with care. Default is off.

Synchronize Directories:

Activates "Sync-Mode" when two directories + are compared and no explicit destination directory was specified. In this + mode the proposed operations will be chosen so that both source directories + are equal afterwards. Also the merge result will be written to both directories. + Default is off.

Copy newer instead of merging:

Instead of merging the proposed + operation will copy the newer source if changes happened. (Considered unsafe, + because it implies that you know, that the other file hasn't been edited + too. Check to make sure in every case.) Default is off.

Backup files:

If a file or complete directory is replaced + by another or is deleted then the original version will be renamed with an + ".orig" extension. If an old backup file with ".orig" extension already exists + then this will be deleted without backup. This also affects the normal merging + of single files, not only in directory-merge mode. Default is on.



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/dirmergevisible.html b/doc/en/dirmergevisible.html new file mode 100644 index 0000000..fd20589 --- /dev/null +++ b/doc/en/dirmergevisible.html @@ -0,0 +1,105 @@ +Directory Merge Visible Information
Directory Merge Visible Information

Directory Merge Visible Information

+ While reading the directories a message-box appears that informs you of + the progress. If you abort the directory scan, then only files that have + been compared until then will be listed. +

+ When the directory scan is complete then KDiff3 will show a listbox with + the results left, ... +



+ ... and details about the currently selected item on the right: +



The Name Column

+ Each file and directory that was found during the scan is shown here in + a tree. You can select an item by clicking it with the mouse once. +

+ The directories are collapsed by default. You can expand and collapse + them by clicking on the "+"/"-" or by double-clicking the item or + by using the left/right-arrow-keys. The "Directory"-menu also contains two + actions "Fold all subdirs" and "Unfold all subdirs" with which you can + collapse or expand all directories at once. +

+ If you double-click a file item then the file comparison starts and the + file-diff-window will appear. +

+ The image in the name column reflects the file type in the first + directory ("A"). It can be one of these: +

  • Normal file

  • Normal directory (directory-image)

  • Link to a file (file-image with a link arrow)

  • Link to a directory (directory-image with a link arrow)

+ If the file type is different in the other directories, then this is visible + in the columns A/B/C and in the window that shows the details about the selected + item. Note that for such a case no merge operation can be selected automatically. + When starting the merge, then the user will be informed of problems of that + kind. +

The Columns A/B/C and the Coloring Scheme

+ As can be seen in the image above the colors red, green, yellow and black + are used in the columns A/B/C. +

  • Black: This item doesn't exist in this directory.

  • Green: Newest item.

  • Yellow: Older than green, newer than red.

  • Red: Oldest item.

+ But for items that were identical in the comparison their color also is + identical even if the age is not. +

+ Directories are considered equal if all items they contain are identical. + Then they also will have the same color. But the age of a directory is not + considered for its color. +

+ The idea for this coloring scheme I came upon in + dirdiff. The colors + resemble the colors of a leaf that is green when new, turns yellow later and red + when old. +

The Operation Column

+ After comparing the directories KDiff3 also evaluates a proposal for a + merge operation. This is shown in the "Operation" column. You can modify + the operation by clicking on the operation you want to change. A small menu + will popup and allows you to select an operation for that item. (You can also + select the most needed operations via keyboard. + Ctrl+1/2/3/4/Del will select A/B/C/Merge/Delete respectively if available.) + This operation will be executed during the merge. It depends on the item and + on the merge-mode you are in, what operations are available. The merge-mode is one of +

  • Three directory-merge ("A" is treated as older base of both).

  • Two directory-merge.

  • Two directory-sync-mode (activate via option "Synchronize Directories").

+ In three directory merge the operation proposal will be: If for an item ... +

  • ... all three directories are equal: Copy from C

  • ... A and C are equal but B is not: Copy from B (or if B does not + exist, delete the destination if exists)

  • ... A and B are equal but C is not: Copy from C (or if C does not + exist, delete the destination if exists)

  • ... B and C are equal but A is not: Copy from C (or if C does not + exist, delete the destination if exists)

  • ... only A exists: Delete the destination (if exists)

  • ... only B exists: Copy from B

  • ... only C exists: Copy from C

  • ... A, B and C are not equal: Merge

  • ... A, B and C don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start.

+ In two directory merge the operation proposal will be: If for an item ... +

  • ... both directories are equal: Copy from B

  • ... A exists, but not B: Copy from A

  • ... B exists, but not A: Copy from B

  • ... A and B exist but are not equal: Merge

  • ... A and B don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start.

+ Sync-mode is active if only two directories and no explicit destination + were specified and if the option "Synchronize directories" is active. KDiff3 + then selects a default operation so that both directories are the same afterwards. + If for an item ... +

  • ... both directories are equal: Nothing will be done.

  • ... A exists, but not B: Copy A to B

  • ... B exists, but not A: Copy B to A

  • ... A and B exist, but are not equal: Merge and store the result + in both directories. (For the user the visible save-filename is B, + but then KDiff3 copies B also to A.)

  • ... A and B don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start.

+ When two directories are merged and the option "Copy newer instead of merging" is selected, + then KDiff3 looks at the dates and proposes to choose the newer file. If the files are not + equal but have equal dates, then the operation will contain + "Error: Dates are equal but files are not." While such items exist the + directory merge cannot start. +

The Status Column

+ During the merge one file after the other will be processed. The status + column will show "Done" for items where the merge operation has succeeded, + and other texts if something unexpected happened. When a merge is complete, + then you should make a last check to see if the status for all items is + agreeable. +

Statistics Columns

+ When the file comparison mode "Full Analysis" is enabled in the options, then + KDiff3 will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace + conflicts. (The solved-column will only show when comparing or merging three directories.) +

Selecting Listed Files

+ Several options influence which files are listed here. Some are accessible in the + settings dialog. The Directory-menu contains the entries: +

  • "Show Identical Files": Files that have been detected equal in all input directories.

  • "Show Different Files": Files that exist in two or more directories but are not equal.

  • "Show Files only in A": Files that exist only in A, but not in B or C.

  • "Show Files only in B": Files that exist only in B, but not in A or B.

  • "Show Files only in C": Files that exist only in C, but not in A or B.

+ Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that + 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" + and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C"). + The list will be updated immediately to reflect the change. +

+ These options also apply for directories with one exception: Disabling "Show Different Files" will not hide + any complete directories. This will work only for files within. +

+ Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting KDiff3. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/documentation.html b/doc/en/documentation.html new file mode 100644 index 0000000..9a0ebd6 --- /dev/null +++ b/doc/en/documentation.html @@ -0,0 +1,54 @@ +Chapter 2. File Comparison And Merge
File Comparison And Merge

Chapter 2. File Comparison And Merge

Command-Line Options

Comparing 2 files:

+   kdiff3 file1 file2
+

Merging 2 files:

+   kdiff3 file1 file2 -m
+   kdiff3 file1 file2 -o outputfile
+

Comparing 3 files:

+   kdiff3 file1 file2 file3
+

Merging 3 files:

+   kdiff3 file1 file2 file3 -m
+   kdiff3 file1 file2 file3 -o outputfile
+

+ Note that file1 will be treated as + base of file2 and + file3. +

Special case: Files with the same name

+If all files have the same name but are in different directories, you can +reduce typework by specifying the filename only for the first file. E.g.: +

+   kdiff3 dir1/filename dir2 dir3
+

Commandline for starting a directory comparison or merge:

This is very similar, but now it's about directories.

+   kdiff3 dir1 dir2
+   kdiff3 dir1 dir2 -o destdir
+   kdiff3 dir1 dir2 dir3
+   kdiff3 dir1 dir2 dir3 -o destdir
+

For directory comparison and merge you can continue to read here.

Other command line options

To see all available command line options type

+kdiff3 --help
+

Example output:

+Options:
+  -m, --merge               Merge the input.
+  -b, --base file           Explicit base file. For compatibility with certain tools.
+  -o, --output file         Output file. Implies -m. E.g.: -o newfile.txt
+  --out file                Output file, again. (For compatibility with certain tools.)
+  --auto                    No GUI if all conflicts are auto-solvable. (Needs -o file)
+  --qall                    Don't solve conflicts automatically. (For compatibility...)
+  --L1 alias1               Visible name replacement for input file 1 (base).
+  --L2 alias2               Visible name replacement for input file 2.
+  --L3 alias3               Visible name replacement for input file 3.
+  -L, --fname alias         Alternative visible name replacement. Supply this once for every input.
+  --cs string               Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1"
+  --confighelp              Show list of config settings and current values.
+  --config file             Use a different config file.
+

The option --cs allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. +But be aware that when KDiff3 then terminates the changed value will be stored along with the other settings. +With --confighelp you can find out the names of the available items and current values.

Via --config you can specify a different config file. When you often use KDiff3 +with completely different setups this allows you to easily switch between them.

Ignorable command line options

Many people want to use KDiff3 with some version control system. +But when that version control system calls KDiff3 using command line parameters that KDiff3 doesn't recognise, then KDiff3 terminates with an error. +The integration settings allow to specify command line parameters that should be ignored by KDiff3. +They will appear in the usage help like in this example:

+  --foo                     Ignored. (User defined.)
+
Command line options to ignore:

+ A list of options, separated via semicolon ';'. When one of these options appears on the commandline, + then KDiff3 will ignore it and run without reporting an error. + (Default is "u;query;html;abort").

When this isn't enough, then it is recommended to write a shell script that does the option translation.



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/dothemerge.html b/doc/en/dothemerge.html new file mode 100644 index 0000000..1bf4d11 --- /dev/null +++ b/doc/en/dothemerge.html @@ -0,0 +1,65 @@ +Doing A Directory Merge
Doing A Directory Merge

Doing A Directory Merge

+ You can either merge the currently selected item (file or directory), or all items. + When you have made all your operation choices (in all subdirectories too) + then you can start the merge. +

+ Be aware that if you didn't specify a destination directory explicitely, + then the destination will be "C" in three directory mode, "B" in two directory + merge mode, and in sync-mode it will be "A" or/and "B". +

+ If you have specified a destination directory also check that all items + that should be in the output, are in the tree. There are some options that + cause certain items to be omitted from the directory comparison and merge. + Check these options to avoid unpleasant surprises: +

  • "Recursive Directories": If this is off, then items in subdirectories + will not be found.

  • "Pattern"/"Anti-Pattern": Include/exclude items that match

  • "Exclude Hidden Files"

  • "Show"-options (Show Identical/Different Files, Files only in A/B/C)

+ If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself. + (The reason for this is that for faster comparison-speed KDiff3 omits the comparison for files suppressed by these criteria.) + If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing + the options-dialog. +

+ Note that when you write to a completely new directory then you usually also want to copy the identical files. + In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs, + then this isn't necessary because the file is already there. +

+ If you are satisfied so far, the rest is easy. +

+ To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu + or press F7 (which is the default shortcut). + To merge only the current item: Select "Run Operation For Current Item" + or press F6. +

+ If due to conflicting filetypes still some items with invalid operations + exist, then a messagebox will appear and these items will be pointed out, + so you can select a valid operation for the item. +

+ If you merge all items a dialog will appear giving you the options "Do it", "Simulate + it" and "Cancel". +

  • Select "Simulate it" if you want to see what would be done without + actually doing it. A verbose list of all operations will be shown.

  • Otherwise select "Do it" to really start merging.

+ Then KDiff3 will run the specified operation for all items. If manual + interaction is required (single file merge), then a merge window will open + (see the big screenshot). +

+ When you have finished with manually merging a file, again select "Start/Continue directory + merge" or the key F7. If you haven't saved it yet, a dialog will ask you to + do so. Then KDiff3 will continue with the next item. +

+ When KDiff3 encounters an error, it will tell you so and will show the + verbose-status-information. At the bottom of this list, there will be some + error messages which should help you to understand the cause of the problem. + When you continue merging (F7 key) KDiff3 will give you the choice to retry + or skip the item that caused the problem. This means that before continuing + you can choose another operation or solve the problem by other means. +

+ When the merge is complete, then KDiff3 will inform you via a message + box. +

+ If some items were merged individually before running the directorymerge then + KDiff3 remembers this (while this + merge-session goes on), and doesn't merge them again when later the merge for + all items is run. Even when the merge was skipped or nothing was saved these + items count as completed. Only when you change the merge operation the + "Done"-status of the item will be removed and it can be merged again. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/faq.html b/doc/en/faq.html new file mode 100644 index 0000000..530e30e --- /dev/null +++ b/doc/en/faq.html @@ -0,0 +1,132 @@ +Chapter 5. Questions and Answers
Questions and Answers

Chapter 5. Questions and Answers

This document may have been updated since your installation. +You can find the latest version at http://docs.kde.org/development/en/extragear-utils/.

5.1. + Why is it called "KDiff3"? +
5.2. + Why did I release it under GPL? +
5.3. + Some buttons and functions are missing. What's wrong? +
5.4. + Often lines that are similar but not identical appear next to each other + but sometimes not. Why? +
5.5. + Why must all conflicts be solved before the merge result can be saved? +
5.6. + How can I synchronise the diff and merge views, so that all views show the same text position? +
5.7. + Why does the editor in the merge result window not have an "undo"-function? +
5.8. + When I removed some text, then suddenly "<No src line>" appeared + and cannot be deleted. What does that mean and how can one remove this? +
5.9. + Why doesn't KDiff3 support syntax-highlighting? +
5.10. + Can I use KDiff3 to compare OpenOffice.Org, Word, Excel, PDF-, etc. files? +
5.11. + Where has the the directory option "List only deltas" gone? +
5.12. + How can I make a big selection in the diff input window + because scrolling takes so long? +
5.13. + There is so much information here, but your question is still not answered? +
5.1.

+ Why is it called "KDiff3"? +

+ Tools named "KDiff" and "KDiff2" (now called "Kompare") already exist. Also "KDiff3" should suggest + that it can merge like the "diff3"-tool in the Diff-Tool collection. +

5.2.

+ Why did I release it under GPL? +

+ I'm using GPL programs for a very long time now and learned very much + by having a look at many of the sources. Hence this is my "Thank You" + to all programmers that also did so or will do the same. +

5.3.

+ Some buttons and functions are missing. What's wrong? +

+ You compiled from source but you probably didn't specify the correct KDE-prefix + with configure. By default configure wants to install in /usr/local but then KDE can't + find the user-interface ressource file (i.e. kdiff3ui.rc). The README-file contains + more information about the correct prefix. +

5.4.

+ Often lines that are similar but not identical appear next to each other + but sometimes not. Why? +

+ Lines where only the amount of white space characters is different + are treated as "equal" at first, while just one different non-white character + causes the lines to be "different". If similar lines appear next to each + other, this actually is coincidence but this fortunately is often the case. + See also Manual Diff Help. +

5.5.

+ Why must all conflicts be solved before the merge result can be saved? +

+ For each equal or different section the editor in the merge result + window remembers where it begins or ends. This is needed so that conflicts + can be solved manually by simply selecting the source button (A, B or C). + This information is lost while saving as text and it is too much effort to + create a special file format that supports saving and restoring all necessary + information. +

5.6.

+ How can I synchronise the diff and merge views, so that all views show the same text position? +

+ Click into the summary column left of the text. (See also here.) +

5.7.

+ Why does the editor in the merge result window not have an "undo"-function? +

+ This was too much effort until now. You can always + restore a version from one source (A, B or C) by clicking the respective + button. For big editing the use of another editor is recommended anyway. +

5.8.

+ When I removed some text, then suddenly "<No src line>" appeared + and cannot be deleted. What does that mean and how can one remove this? +

+ For each equal or different section the editor in the merge result + window remembers where it begins or ends. "<No src line>" means + that there is nothing left in a section, not even a new line character. + This can happen either while merging automatically or by editing. This is + no problem, since this hint won't appear in the saved file. If you want + the orignal source back just select the section (click on the left summary + column) and then click the source button with the needed contents (A/B or + C). +

5.9.

+ Why doesn't KDiff3 support syntax-highlighting? +

+ KDiff3 already uses many colors for difference highlighting. More + highlighting would be confusing. Use another editor for this. +

5.10.

+ Can I use KDiff3 to compare OpenOffice.Org, Word, Excel, PDF-, etc. files? +

+ Although KDiff3 will analyse any kind of file the result will probably + not be very satisfactory for you. +

+ KDiff3 was made to compare pure text files. OpenOffice, Word, Excel etc. + store much more information in the files (about fonts, pictures, pages, + colors etc.) which KDiff3 doesn't know about. So KDiff3 will + show you the contents of the file interpreted as pure text, but + this might be unreadable or at least it will look very odd. +

+ Since most programs nowadays store their contents in XML-format, you might + be able to read it as pure text. So if the change was only small, + KDiff3 still might help you. +

+ The best solution if you only want to compare the text (without embedded + objects like pictures) is to use "Select All" and "Copy" in your program + to copy the interesting text to the clipoard and then in KDiff3 paste the + text into either diff input window. + (See also Select, Copy And Paste.) +

5.11.

+ Where has the the directory option "List only deltas" gone? +

+ There are now several "Show"-options in the directory menu. + Disabling "Show identical files" will achieve what enabling "List only deltas" used to do. +

5.12.

+ How can I make a big selection in the diff input window + because scrolling takes so long? +

+ Start the selection as usual (click and hold the left mouse button). + Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down. + (See also Select, Copy And Paste.) +

5.13.

+ There is so much information here, but your question is still not answered? +

+ Please send me your question. I appreciate every comment. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/features.html b/doc/en/features.html new file mode 100644 index 0000000..e5ac9ed --- /dev/null +++ b/doc/en/features.html @@ -0,0 +1,22 @@ +More Features
More Features

More Features

Line-By-Line And Char-By-Char Diff-Viewer

By using the possiblities of a graphical color display KDiff3 shows + exactly what the difference is. When you have to do many code-reviews, you will like this. +



See White-Space Differences At One Glance

Spaces and tabs that differ appear visibly. When lines differ only + in the amount of white space this can be seen at one look in the summary + column on the left side. (No more worries when people change the indentation.) +



Triple-Diff

Analyze three files and see where they differ. +

+ The left/middle/right windows are named A/B/C and have the blue/green/magenta + color respectively. +

+ If one file is the same and one file is different on a line then the + color shows which file is different. The red color means that both other + files are different. +



Comfortable Merge Of Two Or Three Input Files

KDiff3 can be used to merge two or three input files and automatically + merges as much as possible. The result is presented in an editable window + where most conflicts can be solved with a single mouseclick: Select the + buttons A/B/C from the button-bar to select the source that should be used. + You can also select more than one source. Since this output window is an + editor even conflicts which need further corrections can be solved here without + requiring another tool. +

And ...

  • Fast navigation via buttons.

  • A mouse-click into a summary column sync's all windows to show the same position.

  • Select and copy from any window and paste into the merge result window.

  • Overview column that shows where the changes and conflicts are.

  • The colors are adjustable to your specific preferences.

  • Adjustable Tab size.

  • Option to insert spaces instead of tabs.

  • Open files comfortably via dialog or specify files on the command line.

  • Search for strings in all text windows. Find (Ctrl-F) and Find Next (F3)

  • Show the line numbers for each line.

  • Paste clipboard or drag text into a diff input window.

  • Networktransparency via KIO.

  • Can be used as diff-viewer in KDevelop 3.

  • Word-wrap for long lines.

  • Support for Unicode, UTF-8 and other codecs.

  • Support for right to left languages.

  • ...



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/find.html b/doc/en/find.html new file mode 100644 index 0000000..ead358b --- /dev/null +++ b/doc/en/find.html @@ -0,0 +1,10 @@ +Finding Strings
Finding Strings

Finding Strings

+ You can search for a string in any text-window of KDiff3. The "Find ..."-command + (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string + to search for. You can also select the windows which should be searched. + Searching will always start at the top. Use the "Find Next"-command (F3) + to proceed to the next occurrence. If you select to search several windows then the first + window will be searched from top to bottom before the search starts in the next + window at the top again, etc. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/index.docbook b/doc/en/index.docbook new file mode 100644 index 0000000..50425ed --- /dev/null +++ b/doc/en/index.docbook @@ -0,0 +1,2135 @@ + +KDiff3"> + + + + +]> + + + + + + +The &kdiff3; Handbook + + + + +Joachim +Eibl + +
+ joachim.eibl at gmx.de +
+
+ +
+ + +2002-2007 +Joachim Eibl + + + +&FDLNotice; + + + +2007-31-03 +0.9.92 + + + + + &kdiff3; is a file and directory diff and merge tool which + +compares and merges two or three text input files or directories, +shows the differences line by line and character by character(!), +provides an automatic merge-facility, +has an editor for comfortable solving of merge-conflicts, +provides networktransparency via KIO, +has options to highlight or hide changes in white-space or comments, +supports Unicode, UTF-8 and other file encodings, +prints differences, +supports version control keyword and history merging. + + + This document describes &kdiff3;-version 0.9.92. + + + + + + +KDE +kdeextragear +kdiff3 +diff +merge +CVS +triplediff +compare +files +directories +version control +three-way-merge +in-line-differences +synchronise +kpart +kio +networktransparent +editor +white space +comments + + +
+ +Introduction +Yet Another Diff Frontend? + +Several graphical diff tools exist. Why choose &kdiff3;? Let me say, why I wrote it. + +&kdiff3; started because I had to do a difficult merge. Merging is necessary when several +people work on the same files in a project. A merge can be somewhat automated, when the +merge-tool not only has the new modified files (called "branches"), but also the original file +(called "base"). The merge tool will automatically choose any modification that was only +done in one branch. When several contributors change the same lines, then the merge tool +detects a conflict which must be solved manually. + +The merge then was difficult because one contributor had changed many things and corrected +the indentation in many places. Another contributor also had changed much text in the same file, +which resulted in several merge conflicts. + +The tool I used then, only showed the changed lines, but not what had changed within these +lines. And there was no information about where only the indentation was changed. The merge +was a little nightmare. + +So this was the start. The first version could show differences within a line and showed white space differences. +Later many other features were added to increase the usefulness. + +For example if you want to compare some text quickly, then you can copy it to the clipboard and +paste it into either diff window. + +A feature that required a big effort was the directory comparison and merge facility, which turned +the program almost into a full file browser. + +I hope &kdiff3; works for you too. Have fun! + +Joachim Eibl (2003) + + + +Screenshots and Features +This screenshot shows the difference between two text files +(Using an early version of &kdiff3;): + + + + + + 3-way-merging is fully supported. This is useful if two people change code independently. + The original file (the base) is used to help &kdiff3; to automatically select the correct + changes. + The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. + You can even edit the output. + This screenshot shows three input files being merged: + + + + + + +&kdiff3; also helps you to compare and merge complete directories. +This screenshot shows &kdiff3; during a directory merge: + + + + + + + +More Features + Line-By-Line And Char-By-Char Diff-Viewer +By using the possiblities of a graphical color display &kdiff3; shows + exactly what the difference is. When you have to do many code-reviews, you will like this. + + + + + + + See White-Space Differences At One Glance +Spaces and tabs that differ appear visibly. When lines differ only + in the amount of white space this can be seen at one look in the summary + column on the left side. (No more worries when people change the indentation.) + + + + + + + Triple-Diff + Analyze three files and see where they differ. + + The left/middle/right windows are named A/B/C and have the blue/green/magenta + color respectively. + + If one file is the same and one file is different on a line then the + color shows which file is different. The red color means that both other + files are different. + + + + + + + Comfortable Merge Of Two Or Three Input Files + &kdiff3; can be used to merge two or three input files and automatically + merges as much as possible. The result is presented in an editable window + where most conflicts can be solved with a single mouseclick: Select the + buttons A/B/C from the button-bar to select the source that should be used. + You can also select more than one source. Since this output window is an + editor even conflicts which need further corrections can be solved here without + requiring another tool. + + + +And ... + + Fast navigation via buttons. + A mouse-click into a summary column sync's all windows to show the same position. + Select and copy from any window and paste into the merge result window. + Overview column that shows where the changes and conflicts are. + The colors are adjustable to your specific preferences. + Adjustable Tab size. + Option to insert spaces instead of tabs. + Open files comfortably via dialog or specify files on the command line. + Search for strings in all text windows. Find (Ctrl-F) and Find Next (F3) + Show the line numbers for each line. + Paste clipboard or drag text into a diff input window. + Networktransparency via KIO. + Can be used as diff-viewer in KDevelop 3. + Word-wrap for long lines. + Support for Unicode, UTF-8 and other codecs. + Support for right to left languages. + ... + + + + + +File Comparison And Merge + +Command-Line Options + +Comparing 2 files: + + kdiff3 file1 file2 + + + +Merging 2 files: + + kdiff3 file1 file2 -m + kdiff3 file1 file2 -o outputfile + + + +Comparing 3 files: + + kdiff3 file1 file2 file3 + + + +Merging 3 files: + + kdiff3 file1 file2 file3 -m + kdiff3 file1 file2 file3 -o outputfile + + + Note that file1 will be treated as + base of file2 and + file3. + + + +Special case: Files with the same name + +If all files have the same name but are in different directories, you can +reduce typework by specifying the filename only for the first file. E.g.: + + + kdiff3 dir1/filename dir2 dir3 + + + +Commandline for starting a directory comparison or merge: +This is very similar, but now it's about directories. + + kdiff3 dir1 dir2 + kdiff3 dir1 dir2 -o destdir + kdiff3 dir1 dir2 dir3 + kdiff3 dir1 dir2 dir3 -o destdir + +For directory comparison and merge you can continue to read here. + + +Other command line options +To see all available command line options type + +kdiff3 --help + +Example output: + +Options: + -m, --merge Merge the input. + -b, --base file Explicit base file. For compatibility with certain tools. + -o, --output file Output file. Implies -m. E.g.: -o newfile.txt + --out file Output file, again. (For compatibility with certain tools.) + --auto No GUI if all conflicts are auto-solvable. (Needs -o file) + --qall Don't solve conflicts automatically. (For compatibility...) + --L1 alias1 Visible name replacement for input file 1 (base). + --L2 alias2 Visible name replacement for input file 2. + --L3 alias3 Visible name replacement for input file 3. + -L, --fname alias Alternative visible name replacement. Supply this once for every input. + --cs string Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1" + --confighelp Show list of config settings and current values. + --config file Use a different config file. + +The option allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. +But be aware that when &kdiff3; then terminates the changed value will be stored along with the other settings. +With you can find out the names of the available items and current values. +Via you can specify a different config file. When you often use &kdiff3; +with completely different setups this allows you to easily switch between them. + +Ignorable command line options +Many people want to use &kdiff3; with some version control system. +But when that version control system calls &kdiff3; using command line parameters that &kdiff3; doesn't recognise, then &kdiff3; terminates with an error. +The integration settings allow to specify command line parameters that should be ignored by &kdiff3;. +They will appear in the usage help like in this example: + + --foo Ignored. (User defined.) + + + Command line options to ignore: + A list of options, separated via semicolon ';'. When one of these options appears on the commandline, + then &kdiff3; will ignore it and run without reporting an error. + (Default is "u;query;html;abort"). + +When this isn't enough, then it is recommended to write a shell script that does the option translation. + + + + +Open-Dialog + + Since many input files must be selectable, the program has a special open dialog: + + + + + + The open dialog allows to edit the filenames by hand, selecting a file + via the file-browser ("File...") or allows to choose recent files from + the drop-down lists. If you open the dialog again, then the current names + still remain there. The third input file is not required. If the + entry for "C" remains empty, then only a two file diff analysis will be + done. + + You can also select a directory via "Dir...". If for A a directory is specified + then a directory-comparison/merge starts. If A specifies a file but B, C or + the output specify a directory, then &kdiff3; uses the filename from A in the + specified directories. + + If "Merge" is selected, then the "Output"-line becomes editable. But it + is not required to specify the output filename immediately. You can also + postpone this until saving. + + The "Configure..."-button opens the options-dialog, so that you can set + the options before running the analysis. + + + +Paste and Drop Input + + Sometimes you want to compare parts of a text that is not an own file. &kdiff3; also + allows you to paste text from the clipboard into the diff input window that has the focus. + The diff analysis happens immediately then. + In the open dialog you need not specify files then, but just close it via "Cancel". + + You can also use drag and drop: Drag a file from a file manager + or selected text from an editor and drop it onto a diff input window. + + What's the idea? Sometimes a file contains two similar functions, but checking how similar + they really are is a big effort if you first must create two files and then load them. Now + you can simply copy, paste and compare the relevant sections. + + Note: Currently you cannot drag anything from &kdiff3;. Only dropping in the diff input + is supported. + + Warning: Some editors still interpret the drag and drop into another program like cut + (instead of copy) and paste. Your original data might be lost then. + + + +Comparing Files And Interpreting The Information In The Input Windows + + + +Info Line + At the top of each text window is its "info line". The info lines of + the input windows contain a letter "A", "B" or "C", the editable filename, + a button for browsing, and the line number of the first visible line in the window. + (Note that window "C" is optional.) Each info line appears in a different color. + + When you selected another file via browsing or finished editing the filename here + by pressing enter, the new file will be loaded and + compared with the already loaded file(s). +Coloring + The three input windows are assigned the letters "A", "B" and "C". + "A" has color blue, "B" has green and "C" has magenta. (These are the + defaults, but can be changed in the Settings-Menu.) + + When a difference is detected then the color shows which input file + differs. When both other input files differ then the color used to express + this is red by default ("Conflict color" in the Settings). + This colorscheme is especially useful in the case of three input files, which will be + seen in the next section (Merging). +Summary Column + Left of each text is the "summary column". If differences occurred on a + line then the summary column shows the respective color. For a white-space-only + difference the summary is chequered. For programming languages where white + space is not so important this is useful to see at one glance if anything + of importance was modified. (In C/C++ white space is only interesting within + strings, comments, for the preprocessor, and some only very esoteric situations.) + + The vertical line separating the summary column and the text is interrupted + if the input file had no lines there. When word-wrap is enabled then this vertical + line appears dotted for wrapped lines. +Overview Column + On the right side a "overview"-column is visible left of the vertical scrollbar. + It shows the compressed summary column of input "A". All the differences + and conflicts are visible at one glance. When only two input windows are + used, then all differences appear red here because every difference is + also a conflict. A black rectangle frames the visible part of the inputs. + For very long input files, when the number of input lines is bigger than + the height of the overview column in pixels, then several input lines share + one overview line. A conflict then has top priority over simple differences, + which have priority over no change, so that no difference or conflict is + lost here. By clicking into this overview column the corresponding text + will be shown. +Manually Aligning Lines + Sometimes the algorithm places the wrong lines next to each other. Or you want to compare + one piece of text with text at a completely different position in the other file. + For these situations you can manually instruct &kdiff3; to align certain lines. + Mark the text for which you want to improve the alignment with the mouse as you would + for copy and paste in the first diff view and then choose "Add Manual Diff Alignment" + in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in + the summary column next to the chosen text. Repeat this for the second and + (if available) third diff view. &kdiff3; will immediately recalculate the differences everytime you do this. + and will align the chosen lines. Of course some of the previously matching lines in between + might not match anymore. + + Currently merging doesn't support the use of manual diff help. +Manually Joining and Splitting Diff Sections + In some cases &kdiff3; will see too many or too few diff sections for merging. In such a + case you can join or split existing sections. + + Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). + Then choose "Split Diff At Selection" in the "Merge" menu. + Splits will be added above the first line and below the last line of the selected text. + If you only want to add one section, then select text beginning at another section-split. + + For joining sections in either input window select something in the lines from the sections to join. + (You can join several sections in one step too.) Then choose "Join selected Diffs" in the "Merge"-menu. + + + + +Merging And The Merge Output Editor Window + + + + + The merge output editor window (below the diff input windows) also has an info line at the top showing "Output:", the + filename and "[Modified]" if you edited something. Usually it will contain + some text through the automatic merge facilities, but often it will also + contain conflicts. + + !!! Saving is disabled until all conflicts are resolved !!! (Use the "Go + to prev/next unsolved conflicts"-buttons to find the remaining conflicts.) + + With only two input files every difference is also a conflict that must + be solved manually. + + With three input files the first file is treated as base, while the + second and third input files contain modifications. When at any line only + either input B or input C have changed but not both then the changed source + will automatically be selected. Only when B and C have changed on the same + lines, then the tool detects a conflict that must be solved manually. + When B and C are the same, but not the same as A, then C is selected. +The Summary Column + The merge output editor window also has a summary column on the left. It shows the + letter of the input from which a line was selected or nothing if all three + sources where equal on a line. For conflicts it shows a questionmark "?" + and the line shows "<Merge Conflict>", all in red. Because solving + conflicts line by line would take very long, the lines are grouped into + groups that have the same difference and conflict characteristics. + But only-white-space-conflicts are separated from non-white-space-conflicts + in order to ease the merging of files were the indentation changed for many + lines. +Setting The Current Group And Synchronising Merge And Diff View Position + When clicking into the summary column with the left mouse button in either + window then the beginning of the group belonging to that line will shown in all windows. + This group then becomes the "current group". It is highlighted with the + "Current range (diff) background color" and + a black bar appears on the left side of the text. +Choosing Inputs A, B or C For Current Conflict And Editing + The button bar below the menubar contains three input selector buttons + containing the letters "A", "B" and "C". Click the input selector + button to insert (or remove if already inserted) the lines from the respective source. + To choose the lines from several inputs click the respective buttons in the + needed order. For example if you want that the lines from "B" appear before + the lines from "A" in the output, first click "B", then "A". + + If you use the auto-advance option + ("Automatically go to next unsolved conflict after source selection"), + you should disable this before choosing lines from several inputs or if you want to + edit the lines after your choice. Otherwise &kdiff3; will jump to the next + conflict after choosing the first input. + + It is often helpful directly edit the merge output. + The summary column will show "m" for every line that was manually modified. + When for instance the differences are aligned in a way that simply choosing + the inputs won't be satisfactory, then you can mark the needed text and use + normal copy and paste to put it into the merge output. + + Sometimes, when a line is removed either by automatic merge or by editing + and no other lines remain in that group, then the text <No src line> + will appear in that line. This is just a placeholder for the group for + when you might change your mind and select some source again. This text won't + appear in the saved file or in any selections you want to copy and paste. + + The text "<Merge Conflict>" will appear in the clipboard if you + copy and paste some text containing such a line. But still be careful to + do so. +Choosing Input A, B, or C for All Conflicts + The normal merge will start by solving simple conflicts automatically. + But the "Merge"-menu provides some actions for other common needs. + If you have to select the same source for most conflicts, then you can + choose "A", "B" or "C" everywhere, or only for the remaining unsolved + conflicts, or for unsolved white space conflicts. If you want to decide every + single delta yourself, you can "Set deltas to conflicts". Or if you want to + return to the automatic choices of &kdiff3; then select + "Automatically solve simple conflicts". &kdiff3; then restarts the merge. + For actions that change your previous modifications &kdiff3; will ask for your + confirmation before proceeding. + + Note: When choosing either source for unsolved white space conflicts and + the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in + numbers or comments will be treated like white space too. + +Automatic Merge of Version Control Keywords and History (Log) +Many version control systems support special keywords in the file. (e.g. "$Date$", +"$Header$", "$Author$", "$Log$" etc.) During the +check-in the version control system (VCS) changes these lines. For instance +"$Date$" will turn into "$Date: 2005/03/22 18:45:01 $". Since this line will +be different in every version of the file, it would require manual interaction +during the merge. + +&kdiff3; offers automatic merge for these items. For simple lines that match the +"Auto merge regular expression"-option in all input-files &kdiff3; will choose +the line from B or - if available - from C. (Additionally it is necessary that the lines +in question line up in the comparison and the previous line contains no conflict.) +This auto merge can either be run immediately after a merge starts (activate the option +"Run regular expression auto merge on merge start") or later via the merge +menu "Run Regular Expression Auto Merge". + +Automatic merge for version control history (also called "log") is also supported. +The history automerge can either run immediately when the merge starts by activating the +option "Merge version control history on merge start" or later via the merge menu +"Automatically Solve History Conflicts". + +Usually the version control history begins with a line containing the keyword "$Log$". +This must be matched by the "History start regular expression"-option. +&kdiff3; detects which subsequent lines are in the history by analysing the leading characters +that came before the "$Log$"-keyword. If the same "leading comment"-characters also appears in the following +lines, then they are also included in the history. + +During each check-in the VCS writes a unique line specifying version-, date- and time-information +followed by lines with user comments. +These lines form one history-entry. This history section grows with every check-in and the +most recent entries appear at the top (after the history start line). + +When for parallel development two or more developers check-in a branch of the file then +the merge history will contain several entries that appear as conflicts during the merge +of the branches. Since merging these can become very tedious, &kdiff3; offers support with two +possible strategies: Just insert the history information from both contributors at the top +or sort the history information by a user defined key. + +The just-insert-all-entries-method is easier to configure. &kdiff3; just needs a method to +detect, which lines belong to one history entry. Most VCS insert an empty line after each +history entry. If there are no other empty lines, this is a sufficient criterion for &kdiff3;. +Just set an empty "History entry start regular expression". If the empty line criterion +isn't sufficient, you can specify a regular expression to detect the history entry start. + +Note that &kdiff3; will remove duplicate history entrys. If a history entry appeared several times +in the history of a input file, only one entry will remain in the output. + +If you want to sort the history, then you have to specify how the sort key should be built. +Use parentheses in the "History entry start regular expression" to group parts of the regular +expression that should later be used for the sort key. +Then specify the "History entry start sort key order" specifying a comma "," separated list of +numbers referring to the position of the group in the regular expression. + +Because this is not so easy to get right immediately, you are able to test and improve +the regular expressions and key-generation in a dedicated dialog by pressing the +"Test your regular expressions"-button. +Example: Assume a history that looks like this: + +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Merged branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Improved the speed for subroutine convertToMesh(). +** Fixed crash. +**************************************************************************/ + +The history start line matches the regular expression ".*\$Log.*\$.*". Then follow +the history entries. + +The line with the "$Log$"-keyword begins with two "*" after which follows a space. +&kdiff3; uses the first non-white-space string as "leading comment" and assumes that +the history ends in the first line without this leading comment. In this example the +last line ends with a string that also starts with two "*", but instead of a space +character more "*" follow. Hence this line ends the history. + +If history sorting isn't required then the history entry start line regular expression +could look like this. (This line is split in two because it wouldn't fit otherwise.) + +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +For details about regular expressions please see the +regular expression documentation by Trolltech. +Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space. +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 ".*". + +Note that the "leading comment"-characters (in the example "**") will already be removed by &kdiff3; +before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*". +Because comment characters can differ in each file (e.g. C/C++ uses other comment characters than a Perl script) +&kdiff3; takes care of the leading comment characters and you should not specify them in the regular expression. + +If you require a sorted history. Then the sortkey must be calculated. For this the +relevant parts in the regular expression must be grouped by parentheses. +(The extra parentheses can also stay in if history sorting is disabled.) + +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. +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: +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". + +Because month names aren't good for sorting ("Apr" would be first) &kdiff3; detects in which order +the month names were given and uses that number instead ("Apr"->"04"). +And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting. +Finally the resulting sort key for the first history entry start line will be: + +2001 04 0002 10:45:41 integration_branch_12 tom + + +For more information also see Merge Settings. + + + + +Navigation And Editing + + Much navigation will be done with the scroll bars and the mouse but + you can also navigate with the keys. If you click into either window then + you can use the cursor buttons left, right, up, down, page up, page down, + home, end, ctrl-home, ctrl-end as you would in other programs. The overview-column + next to the vertical scroll bar of the input files can also be used for + navigating by clicking into it. + + You can also use the wheel mouse to scroll up and down. + + In the merge output editor you can also use the other keys for editing. + You can toggle between insert and overwrite mode with the insert key. (Default + is insert-mode.) + + A left-mouse-button-click into any summary column will synchronise all + windows to show the beginning of the same group of lines (as explained + in section "Setting The Current Group And Synchronising Merge And Diff View Position"). + + The button bar also contains nine navigation buttons with which you can + jump to the current/first/last difference, to the next/previous difference + (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup), + or to the next/previous unsolved conflict. Note that for &kdiff3; a "conflict" + that was not automatically solved at the start of the merge stays a "conflict" + even if it is solved. Hence the necessity to distinguish "unsolved conflicts". + +Auto-Advance + + There also is a button "Automatically go to next unsolved conflict after + source selection" (Auto-Advance). If you enable this, then, when one source + is selected, &kdiff3; will jump to and select the next unsolved conflict + automatically. This can help when you always want to choose one source only. + When you need both sources, or you want to edit after selecting, then you + probably want to switch this off. Before proceeding to the next unsolved conflict + &kdiff3; shows you the effect of your choice for a short time. This delay is + adjustable in the Diff- & Merge-Settings: You can + specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint: + Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts + Ctrl-1/2/3 to select A/B/C for many conflicts. + + + + +Select, Copy And Paste + + The input windows don't show a cursor, so selections must be made + with the mouse by clicking with the left mouse button at the start, holding + down the mousebutton and moving to the end, where you release the mouse + button again. You can also select a word by double clicking it. In the merge + output editor you can also select via the keyboard by holding the "shift"-button + and navigation with the cursor keys. + + If the selection exceeds the visible range you can move the mouse over the + window borders which causes &kdiff3; to scroll in that direction. + + For very large selections you can also use the navigation keys while holding down + the mouse. E.g. use page up and page down to quickly go to a certain position. At the + end position release the mouse button. + + In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A). + + To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert). + But there exists an option "Auto Copy Selection". If this is enabled, + then whatever you select is copied immediately and you don't need to explicitely + copy. But pay attention when using this because the contents of the clipboard + might then be destroyed accidentally. + + "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the + selected text. + + "Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the + cursorposition or over the current selection. + If you paste to either diff input window the contents of the clipboard will + be shown in that window and the comparison will restart immediately. This is + useful if you want to quickly grab a piece of text from somewhere and + compare it with something else without first creating files. + + + +Saving + + Saving will only be allowed, when all conflicts were solved. If the file + already exists and the "Backup files"-option is enabled then the existing + file will be renamed with an ".orig"-extension, but if such a file exists + it will be deleted. When you exit or start another diff-analysis and data + wasn't saved yet, then &kdiff3; will ask if you want to save, cancel or proceed + without saving. (&kdiff3; does not catch any signals. So if you "kill" &kdiff3; + then your data will be lost.) + + Line endings are saved according to the normal method on the underlying + operating system. For Unices each line ends with an linefeed-character "\n", + while for Win32-based systems each line ends with a carriage-return + a linefeed + "\r\n". &kdiff3; does not preserve the line-endings of the input files, which + also means that you shouldn't use &kdiff3; with binary files. + + + +Finding Strings + + You can search for a string in any text-window of &kdiff3;. The "Find ..."-command + (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string + to search for. You can also select the windows which should be searched. + Searching will always start at the top. Use the "Find Next"-command (F3) + to proceed to the next occurrence. If you select to search several windows then the first + window will be searched from top to bottom before the search starts in the next + window at the top again, etc. + + + +Printing + + &kdiff3; supports printing for textfile differences. The "Print..."-command (Ctrl-P) + in the File-menu opens a dialog that allows you to select the printer and to adjust + other options. + + There are several possibilities to adjust the range. Due to different printing + dialogs on different operating systems, the method to achieve certain range selections varies. + + + All:Print everything. + Current:Print a page starting at the first visible line in the window. + (On systems without this option this can be achived by specifying page number 10000 for printing.) + Selection: + Before choosing to print select text with the mouse (like for copy and paste) + in one of the diff input windows to define the start and end line. If no text + in one of the diff input windows was selected, then this won't be an available + choice. (On systems without this option this can be achived by specifying page + number 9999 for printing.) + Range:Specify the first and last page. + + + + Other important options for printing will be taken from the normal options: + + Font, font size + Show line numbers + Word wrap + Colors + etc. + + + Landscape formatting is also recommended for printing. + + + +Options + + Options and the recent-file-list will be saved when you exit the program, + and reloaded when you start it. (Menu Settings->Configure &kdiff3; ...) + +Font + + Select a fixed width font. (On some systems this dialog will also + present variable width fonts, but you should not use them.) + + + Italic Font for Deltas: If you select this, then text differences + will be drawn with the italic version of the selected font. If the font + doesn't support italic, then this does nothing. + + + + +Colors + + Foreground color: Usually black. + Background color: Usually white. + Diff Background color: Usually light gray. + Color A: Usually dark blue. + Color B: Usually dark green. + Color C: Usually dark magenta. + Conflict Color: Usually red. + Current range background color: Usually light yellow. + Current range diff background color: Usually dark yellow. + Color for manually selected diff ranges: Usually orange. + Newest file color in directory comparison: Usually green. + Oldest file color in directory comparison: Usually red. + Middle age file color in directory comparison: Usually dark yellow. + Color for missing files in directory comparison: Usually black. + + + Changing the colors for directory comparison will be effective only when starting the next directory comparison. + + + On systems with only 16 or 256 colors some colors are not available in pure + form. On such systems the "Defaults"-button will choose a pure color. + + + +Editor Settings + + Tab inserts spaces: If this is disabled and you press the + tabulator key, a tab-character is inserted, otherwise the appropriate + amount of characters is inserted. + Tab size: Can be adjusted for your specific needs. Default is 8. + Auto indentation: When pressing Enter or Return the indentation + of the previous line is used for the new line. + Auto copy selection: Every selection is immediately copied + to the clipboard when active and you needn't explicitely copy it. + Line end style: When saving you can select what line + end style you prefer. The default setting is the common choice for the used operating system. + + + +Diff Settings + + When comparing files, &kdiff3; first it tries to match lines that are equal + in all input files. Only during this step it might ignore white space. The + second step compares each line. In this step white space will not be ignored. + Also during the merge white space will not be ignored. + + + + Preserve Carriage Return: Some editors (on some systems) save + carriage return '\r' and linefeed '\n'-characters at the end of line, while + others will only save the linefeed '\n'. Usually &kdiff3; ignores the carriage + return, but then files that don't have equal sizes, look equal in side by + side comparison. When this option is on, then the carriage return characters + are made visible but are treated as white space. This option must be off + during a merge. Default is off. + Ignore numbers: Default is off. Number characters ('0'-'9', '.', '-') + will be ignored in the first part of the analysis in which the line matching is + done. In the result the differences will be shown nevertheless, but they are treated + as white space. + + Ignore C/C++ comments: Default is off. + Changes in comments will be treated like changes in white space. + + Ignore case: Default is off. + Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space. + + Preprocessor-Command: + See next section. + + Line-Matching Preprocessor-Command: + See next section. + + Try Hard: + Try hard to find an even smaller delta. (Default is on.) This will probably + be effective for complicated and big files. And slow for very big files. + + + + +Merge Settings + + Auto Advance Delay (ms): When in auto-advance-mode this setting specifies + how long to show the result of the selection before jumping to the next unsolved + conflict. + + White space 2/3-file merge default: + Automatically solve all white-space conflict by choosing the specified file. + (Default is manual choice.) Useful if white space really isn't important in many files. + If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts" + in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments" + then this auto-choice also applies for conflicts in numbers or comments. + + Auto merge regular expression: + Regular expression for lines where &kdiff3; should automatically choose one source. See also Automatic Merge ... + + Run regular expression auto merge on merge start: + If activated &kdiff3; runs the automatic merge using the "Auto merge regular expression" when a merge is started. + + History start regular expression: + Regular expression for the start of the merge history entry. + Usually this line contains the "$Log$"-keyword. + Default value: ".*\$Log.*\$.*" + + History entry start regular expression: + A merge history entry consists of several lines. + Specify the regular expression to detect the first line (without the leading comment). + Use parentheses to group the keys you want to use for sorting. + If left empty, then &kdiff3; assumes that empty lines separate history entries. + See also Automatic Merge ... + + History merge sorting: + Enable version control history sorting. + + History entry start sort key order: + Each parentheses used in the regular expression for the history start entry + groups a key that can be used for sorting. + Specify the list of keys (that are numbered in order of occurrence + starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7"). + If left empty, then no sorting will be done. + See also Automatic Merge ... + + Merge version control history on merge start: + If activated &kdiff3; runs the automatic history merging using aforementioned options when a merge is started. + + Max number of history entries: + &kdiff3; truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1). + + Test your regular expressions + This button shows a dialog that allows you to improve and test the regular expressions above. + Just copy the respective data from your files into the example lines. The "Match results" + will immediately show whether the match succeeds or not. + The "Sort key result" will display the key used for history merge sorting. + + Irrelevant merge command: + Specify a command of your own that should be called when &kdiff3; detects + that for a three file merge the file from B doesn't contribute any + relevant data that isn't already contained in the file from C. + The command is called with the three filenames as parameters. + Data matched by the "Auto merge regular expression" or in the + history isn't considered relevant. + + + + + +Directory Merge + + These options are concerned with scanning the directory and handling the + merge: See the Directory Comparison/Merge + Docs for details. + +Yet there is one option here that is also relevant for saving single files: + + + Backup files: When a file is saved and an older version already + exists, then the original version will be renamed with an ".orig" extension. + If an old backup file with ".orig" extension already exists then this will + be deleted without backup. + + + + +Regional and Language Options + + Language:Adjust the language of the user interface. Changing this option doesn't affect the running program. You have to exit and restart &kdiff3; so that the language is changed. (This option is not available in the KDE version of &kdiff3; because the language is adjustable in the global KDE settings.) + + Use the same encoding for everything: The following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value. + + Local Encoding:Above the codec-selectors appears a note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.) + + File Encoding for A/B/C: Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs. + + File Encoding for Merge Output and Saving: When you have edited a file, then you can adjust which encoding will be used when saving to disk. + + File Encoding for Preprocessor Files:When you define preprocessors then they might not be able to operate on your codec. (e.g.: Your files are 16-bit-unicode and your preprocessor can only take 8-bit-ascii.) With this option you can define the encoding of preprocessor output. + + Right To Left Language:Some languages are written right to left. When this option is enabled, &kdiff3; draws the text from right to left in the diff input windows and in the merge output window. Note that if you start &kdiff3; with the command line option "--reverse" then all layouting will be done right to left too. (This is a feature provided by Qt.) This documentation was written assuming that "Right To Left Language" or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options. + + + + + +Miscellaneous +(These options and actions are available in menus or the buttonbar.) + + Show line numbers: You can select if line numbers should be + shown for the input files. + Show space and tabulator characters for differences: Sometimes + the visible spaces and tabs are disturbing. You can turn this off. + Show white space: Turn this off to suppress + any highlighting of white-space-only changes in the text or overview-columns. + (Note that this also applies to changes in numbers or comments if the options "Ignore numbers" + or "Ignore C/C++ comments" are active.) + Overview options: + These choices are only available when you compare three files. In normal mode all + differences are shown in one color-coded overview-column. But sometimes you are + especially interested in the differences between only two of these three files. + Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview + column with the required information next to the normal overview. + + Word wrap diff windows: + Wrap lines when their length would exceed the width of a window. + + Show Window A/B/C: Sometimes you want to use the space on + the screen better for long lines. Hide the windows that are not important. + (In the Windows-menu.) + Toggle Split Orientation: + Switch between diff windows shown next to each other (A left of B left of C) or above + each other (A above B above C). This should also help for long lines. (In the Windows-menu.) + + Start a merge quickly: + Sometimes you are viewing the deltas and decide to merge. + + "Merge current file" in the Directory-menu also works if you only compare + two files. A single click starts the merge and uses the filename of the last + input-file as the default output filename. (When this is used to restart + a merge, then the output filename will be preserved.) + + + +Configuring Keyboard-Shortcuts + + Currently only the KDE-version supports user-configurable keyboard-shortcuts. + (Menu Settings->Configure Shortcuts...) + + + + +Preprocessor Commands + +&kdiff3; supports two preprocessor options. + + + Preprocessor-Command: + When any file is read, it will be piped through this external command. + The output of this command will be visible instead of the original file. + You can write your own preprocessor that fulfills your specific needs. + Use this to cut away disturbing parts of the file, or to automatically + correct the indentation etc. + + Line-Matching Preprocessor-Command: + When any file is read, it will be piped through this external command. If + a preprocessor-command (see above) is also specified, then the output of the + preprocessor is the input of the line-matching preprocessor. + The output will only be used during the line matching phase of the analysis. + You can write your own preprocessor that fulfills your specific needs. + Each input line must have a corresponding output line. + + + + +The idea is to allow the user greater flexibility while configuring the diff-result. +But this requires an external program, and many users don't want to write one themselves. +The good news is that very often sed or perl +will do the job. + +Example: Simple testcase: Consider file a.txt (6 lines): + + aa + ba + ca + da + ea + fa + +And file b.txt (3 lines): + + cg + dg + eg + +Without a preprocessor the following lines would be placed next to each other: + + aa - cg + ba - dg + ca - eg + da + ea + fa + +This is probably not wanted since the first letter contains the actually interesting information. +To help the matching algorithm to ignore the second letter we can use a line matching preprocessor +command, that replaces 'g' with 'a': + + sed 's/g/a/' + +With this command the result of the comparison would be: + + aa + ba + ca - cg + da - dg + ea - eg + fa + +Internally the matching algorithm sees the files after running the line matching preprocessor, +but on the screen the file is unchanged. (The normal preprocessor would change the data also on +the screen.) + + +<command>sed</command> Basics + +This section only introduces some very basic features of sed. For more +information see info:/sed or + +http://www.gnu.org/software/sed/manual/html_mono/sed.html. +A precompiled version for Windows can be found at +http://unxutils.sourceforge.net. +Note that the following examples assume that the sed-command is in some +directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute +path for the command. + +Also note that the following examples use the single quotation mark (') which won't work for Windows. +On Windows you should use the double quotation marks (") instead. + +In this context only the sed-substitute-command is used: + + sed 's/REGEXP/REPLACEMENT/FLAGS' + +Before you use a new command within &kdiff3;, you should first test it in a console. +Here the echo-command is useful. Example: + + echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +This example shows a very simple sed-command that replaces the first occurance +of "a" with "o". If you want to replace all occurances then you need the "g"-flag: + + echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +The "|"-symbol is the pipe-command that transfers the output of the previous +command to the input of the following command. If you want to test with a longer file +then you can use cat on Unix-like systems or type +on Windows-like systems. sed will do the substitution for each line. + + cat filename | sed options + + + +Examples For <command>sed</command>-Use In &kdiff3; +Ignoring Other Types Of Comments + +Currently &kdiff3; understands only C/C++ comments. Using the +Line-Matching-Preprocessor-Command you can also ignore +other types of comments, by converting them into C/C++-comments. + +Example: To ignore comments starting with "#", you would like to convert them +to "//". Note that you also must enable the "Ignore C/C++-Comments" option to get +an effect. An appropriate Line-Matching-Preprocessor-Command would be: + + + sed 's/#/\/\//' + +Since for sed the "/"-character has a special meaning, it is necessary to place the +"\"-character before each "/" in the replacement-string. Sometimes the "\" is required +to add or remove a special meaning of certain characters. The single quotation marks (') before +and after the substitution-command are important now, because otherwise the shell will +try to interpret some special characters like '#', '$' or '\' before passing them to +sed. Note that on Windows you will need the double quotation marks (") here. Windows +substitutes other characters like '%', so you might have to experiment a little bit. + + +Caseinsensitive Diff + +Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: + + sed 's/\(.*\)/\U\1/' + +Here the ".*" is a regular expression that matches any string and in this context matches +all characters in the line. +The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)". +The "\U" converts the inserted text to uppercase. + + + +Ignoring Version Control Keywords + +CVS and other version control systems use several keywords to insert automatically +generated strings (info:/cvs/Keyword substitution). +All of them follow the pattern "$KEYWORD generated text$". We now need a +Line-Matching-Preprocessor-Command that removes only the generated text: + + sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +The "\|" separates the possible keywords. You might want to modify this list +according to your needs. +The "\" before the "$" is necessary because otherwise the "$" matches the end of the line. + + +While experimenting with sed you might come to understand and even like +these regular expressions. They are useful because there are many other programs that also +support similar things. + + + +Ignoring Numbers + +Ignoring numbers actually is a built-in option. But as another example, this is how +it would look as a Line-Matching-Preprocessor-command. + + sed 's/[0123456789.-]//g' + +Any character within '[' and ']' is a match and will be replaced with nothing. + + + +Ignoring Certain Columns + +Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are +other columns you want to preserve for analysis. In the following example the first five columns (characters) are +ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved. + + sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first +and second pair of "\(" and "\)" denoting the text to be preserved. + + + +Combining Several Substitutions + +Sometimes you want to apply several substitutions at once. You can then use the +semicolon ';' to separate these from each other. Example: + + echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + + +Using <command>perl</command> instead of <command>sed</command> + +Instead of sed you might want to use something else like +perl. + + perl -p -e 's/REGEXP/REPLACEMENT/FLAGS' + +But some details are different in perl. Note that where +sed needed "\(" and "\)" perl +requires the simpler "(" and ")" without preceding '\'. Example: + + sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + + +Order Of Preprocessor Execution + +The data is piped through all internal and external preprocessors in the +following order: + + +Normal preprocessor, +Line-Matching-Preprocessor, +Ignore case (conversion to uppercase), +Detection of C/C++ comments, +Ignore numbers, +Ignore white space + + +The data after the normal preprocessor will be preserved for display and merging. The +other operations only modify the data that the line-matching-diff-algorithm sees. + +In the rare cases where you use a normal preprocessor note that +the line-matching-preprocessor sees the output of the normal preprocessor as input. + + + +Warning + +The preprocessor-commands are often very useful, but as with any option that modifies +your texts or hides away certain differences automatically, you might accidentally overlook +certain differences and in the worst case destroy important data. + +For this reason during a merge if a normal preprocessor-command is being used &kdiff3; +will tell you so and ask you if it should be disabled or not. +But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until +all conflicts are solved. If you disabled "Show White Space" then the differences that +were removed with the Line-Matching-Preprocessor-command will also be invisible. If the +Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable +"Show White Space". If you don't wan't to merge these less important differences manually +you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu. + + + + + + +Directory Comparison and Merge with &kdiff3; +Introduction into Directory Comparison and Merge + + Often programmers must modify many files in a directory to achieve their + purpose. For this &kdiff3; also lets you compare and merge complete directories + recursively! + + Even though comparing and merging directories seems to be quite obvious, + there are several details that you should know about. Most important is of + course the fact that now many files might be affected by each operation. + If you don't have backups of your original data, then it can be very hard + or even impossible to return to the original state. So before starting a merge, + make sure that your data is safe, and going back is possible. If you make + an archive or use some version control system is your decision, but even + experienced programmers and integrators need the old sources now and then. + And note that even though I (the author of &kdiff3;) try to do my best, I can't + guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY + whatsoever for this program. So be humble and always keep in mind: + +
+ To err is human, but to really mess things up you need a computer. +
+ +So this is what this program can do for you: &kdiff3; ... + + + ... reads and compares two or three directories recursively, + ... takes special care of symbolic links, + ... lets you browse files on mouse double click, + ... for each item proposes a merge operation, which you can change + before starting the directory merge, + ... lets you simulate the merge and lists the actions that would + take place, without actually doing them, + ... lets you really do the merge, and lets you interact whenever + manual interaction is needed, + ... lets you run the selected operation for all items (key F7) or the selected item (key F6), + ... lets you continue the merge after manual interaction with key F7, + ... optionally creates backups, with the ".orig" extension, + ... + +
+ +Starting Directory Comparison Or Merge + + This is very similar to the single file merge and comparison. You just + have to specify directories on the command line or in the file-open + dialog. + +Compare/Merge two directories: + + kdiff3 dir1 dir2 + kdiff3 dir1 dir2 -o destdir + + + If no destination directory is specified, then &kdiff3; will use dir2. + + + +Compare/Merge three directories: + + kdiff3 dir1 dir2 dir3 + kdiff3 dir1 dir2 dir3 -o destdir + + + When three directories are merged then dir1 + is used as the base for the merge. + If no destination directory is specified, then &kdiff3; will use dir3 + as the destination directory for the merge. + + + + Note that only the comparison starts automatically, not the merge. For this you first must + select a menu entry or the key F7. (More details later.) + + + + +Directory Merge Visible Information + + While reading the directories a message-box appears that informs you of + the progress. If you abort the directory scan, then only files that have + been compared until then will be listed. + + When the directory scan is complete then &kdiff3; will show a listbox with + the results left, ... + + + + + + ... and details about the currently selected item on the right: + + + + + + +The Name Column + + Each file and directory that was found during the scan is shown here in + a tree. You can select an item by clicking it with the mouse once. + + The directories are collapsed by default. You can expand and collapse + them by clicking on the "+"/"-" or by double-clicking the item or + by using the left/right-arrow-keys. The "Directory"-menu also contains two + actions "Fold all subdirs" and "Unfold all subdirs" with which you can + collapse or expand all directories at once. + + If you double-click a file item then the file comparison starts and the + file-diff-window will appear. + + + The image in the name column reflects the file type in the first + directory ("A"). It can be one of these: + + + Normal file + Normal directory (directory-image) + Link to a file (file-image with a link arrow) + Link to a directory (directory-image with a link arrow) + + + If the file type is different in the other directories, then this is visible + in the columns A/B/C and in the window that shows the details about the selected + item. Note that for such a case no merge operation can be selected automatically. + When starting the merge, then the user will be informed of problems of that + kind. + + + +The Columns A/B/C and the Coloring Scheme + + As can be seen in the image above the colors red, green, yellow and black + are used in the columns A/B/C. + + + Black: This item doesn't exist in this directory. + Green: Newest item. + Yellow: Older than green, newer than red. + Red: Oldest item. + + + But for items that were identical in the comparison their color also is + identical even if the age is not. + + Directories are considered equal if all items they contain are identical. + Then they also will have the same color. But the age of a directory is not + considered for its color. + + The idea for this coloring scheme I came upon in + dirdiff. The colors + resemble the colors of a leaf that is green when new, turns yellow later and red + when old. + + +The Operation Column + + After comparing the directories &kdiff3; also evaluates a proposal for a + merge operation. This is shown in the "Operation" column. You can modify + the operation by clicking on the operation you want to change. A small menu + will popup and allows you to select an operation for that item. (You can also + select the most needed operations via keyboard. + Ctrl+1/2/3/4/Del will select A/B/C/Merge/Delete respectively if available.) + This operation will be executed during the merge. It depends on the item and + on the merge-mode you are in, what operations are available. The merge-mode is one of + + + Three directory-merge ("A" is treated as older base of both). + Two directory-merge. + Two directory-sync-mode (activate via option "Synchronize Directories"). + + + In three directory merge the operation proposal will be: If for an item ... + + + ... all three directories are equal: Copy from C + ... A and C are equal but B is not: Copy from B (or if B does not + exist, delete the destination if exists) + ... A and B are equal but C is not: Copy from C (or if C does not + exist, delete the destination if exists) + ... B and C are equal but A is not: Copy from C (or if C does not + exist, delete the destination if exists) + ... only A exists: Delete the destination (if exists) + ... only B exists: Copy from B + ... only C exists: Copy from C + ... A, B and C are not equal: Merge + ... A, B and C don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start. + + + In two directory merge the operation proposal will be: If for an item ... + + + ... both directories are equal: Copy from B + ... A exists, but not B: Copy from A + ... B exists, but not A: Copy from B + ... A and B exist but are not equal: Merge + ... A and B don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start. + + + Sync-mode is active if only two directories and no explicit destination + were specified and if the option "Synchronize directories" is active. &kdiff3; + then selects a default operation so that both directories are the same afterwards. + If for an item ... + + + ... both directories are equal: Nothing will be done. + ... A exists, but not B: Copy A to B + ... B exists, but not A: Copy B to A + ... A and B exist, but are not equal: Merge and store the result + in both directories. (For the user the visible save-filename is B, + but then &kdiff3; copies B also to A.) + ... A and B don't have the same file type (e.g. A is a directory, + B is a file): "Error: Conflicting File Types". While such items exist the + directory merge cannot start. + + + When two directories are merged and the option "Copy newer instead of merging" is selected, + then &kdiff3; looks at the dates and proposes to choose the newer file. If the files are not + equal but have equal dates, then the operation will contain + "Error: Dates are equal but files are not." While such items exist the + directory merge cannot start. + + + +The Status Column + + During the merge one file after the other will be processed. The status + column will show "Done" for items where the merge operation has succeeded, + and other texts if something unexpected happened. When a merge is complete, + then you should make a last check to see if the status for all items is + agreeable. + + + +Statistics Columns + + When the file comparison mode "Full Analysis" is enabled in the options, then + &kdiff3; will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace + conflicts. (The solved-column will only show when comparing or merging three directories.) + + + +Selecting Listed Files + + Several options influence which files are listed here. Some are accessible in the + settings dialog. The Directory-menu contains the entries: + + "Show Identical Files": Files that have been detected equal in all input directories. + "Show Different Files": Files that exist in two or more directories but are not equal. + "Show Files only in A": Files that exist only in A, but not in B or C. + "Show Files only in B": Files that exist only in B, but not in A or B. + "Show Files only in C": Files that exist only in C, but not in A or B. + + + Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that + 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" + and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C"). + The list will be updated immediately to reflect the change. + + These options also apply for directories with one exception: Disabling "Show Different Files" will not hide + any complete directories. This will work only for files within. + + Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting &kdiff3;. + + + + + + +Doing A Directory Merge + + You can either merge the currently selected item (file or directory), or all items. + When you have made all your operation choices (in all subdirectories too) + then you can start the merge. + + Be aware that if you didn't specify a destination directory explicitely, + then the destination will be "C" in three directory mode, "B" in two directory + merge mode, and in sync-mode it will be "A" or/and "B". + + If you have specified a destination directory also check that all items + that should be in the output, are in the tree. There are some options that + cause certain items to be omitted from the directory comparison and merge. + Check these options to avoid unpleasant surprises: + + + "Recursive Directories": If this is off, then items in subdirectories + will not be found. + "Pattern"/"Anti-Pattern": Include/exclude items that match + "Exclude Hidden Files" + "Show"-options (Show Identical/Different Files, Files only in A/B/C) + + + If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself. + (The reason for this is that for faster comparison-speed &kdiff3; omits the comparison for files suppressed by these criteria.) + If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing + the options-dialog. + + Note that when you write to a completely new directory then you usually also want to copy the identical files. + In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs, + then this isn't necessary because the file is already there. + + If you are satisfied so far, the rest is easy. + + To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu + or press F7 (which is the default shortcut). + To merge only the current item: Select "Run Operation For Current Item" + or press F6. + + If due to conflicting filetypes still some items with invalid operations + exist, then a messagebox will appear and these items will be pointed out, + so you can select a valid operation for the item. + + If you merge all items a dialog will appear giving you the options "Do it", "Simulate + it" and "Cancel". + + + Select "Simulate it" if you want to see what would be done without + actually doing it. A verbose list of all operations will be shown. + Otherwise select "Do it" to really start merging. + + + Then &kdiff3; will run the specified operation for all items. If manual + interaction is required (single file merge), then a merge window will open + (see the big screenshot). + + When you have finished with manually merging a file, again select "Start/Continue directory + merge" or the key F7. If you haven't saved it yet, a dialog will ask you to + do so. Then &kdiff3; will continue with the next item. + + When &kdiff3; encounters an error, it will tell you so and will show the + verbose-status-information. At the bottom of this list, there will be some + error messages which should help you to understand the cause of the problem. + When you continue merging (F7 key) &kdiff3; will give you the choice to retry + or skip the item that caused the problem. This means that before continuing + you can choose another operation or solve the problem by other means. + + When the merge is complete, then &kdiff3; will inform you via a message + box. + + If some items were merged individually before running the directorymerge then + &kdiff3; remembers this (while this + merge-session goes on), and doesn't merge them again when later the merge for + all items is run. Even when the merge was skipped or nothing was saved these + items count as completed. Only when you change the merge operation the + "Done"-status of the item will be removed and it can be merged again. + + + +Options for Comparing and Merging Directories + + The &kdiff3;-preferences (menu "Settings"->"Configure &kdiff3;") has + a section called "Directory Merge" with these options: + + + + Recursive Directories: Select whether to search directories + recursively. + File Pattern(s): Only files that match any pattern here will + be put in the tree. More than one pattern may be specified here by using + the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h"). + Default is "*". This pattern is not used on directories. + File Anti-Pattern(s): Files that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "*.orig;*.o;*.obj". + Directory Anti-Pattern(s): Directories that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "CVS;deps;.svn". + Use CVS-Ignore: + Ignore files and directories that would also be ignored by CVS. + Many automatically generated files are ignored by CVS. + The big advantage is that this can be directory specific via a local ".cvsignore"-file. + (See info:/cvs/cvsignore.) + Find Hidden Files and Directories: On some file systems files + have an "Hidden"-attribute. On other systems a filename starting with a dot + "." causes it to be hidden. This option allows you to decide whether to + include these files in the tree or not. Default is on. + Follow File Links: For links to files: When disabled, then + the symbolic links are compared. When enabled, then the files behind the + links are compared. Default is off. + Follow Directory Links: For links to directories: When disabled, + then the symbolic links will be compared. When enabled then the link will + be treated like a directory and it will be scanned recursively. (Note that + the program doesn't check if the link is "recursive". So for example a directory + that contains a link to the directory would cause an infinite loop, and after + some time when the stack overflows or all memory is used up, crash the program.) + Default is off. + Case Sensitive Filename Comparison: + Default is false on Windows, true for other operating systems. + File Comparison Mode: + + Binary Comparison: + This is the default file comparison mode. + + Full Analysis: + Do a full analysis of each file and show the statistics information columns. + (Number of solved, unsolved, nonwhite and white conflicts.) + The full analysis is slower than a simple binary analysis, and much + slower when used on files that don't contain text. + (Specify the appropriate file-antipatterns.) + + Trust the modification date: If you compare big directories + over a slow network, it might be faster to compare the modification dates + and file length alone. But this speed improvement comes with the price of + a little uncertainty. Use this option with care. Default is off. + Trust the size: + Similar to trusting the modification date. No real comparison happens. Two + files are considered equal if their file-sizes are equal. This is useful + when the file-copy operation didn't preserve the modification date. + Use this option with care. Default is off. + + + Synchronize Directories: Activates "Sync-Mode" when two directories + are compared and no explicit destination directory was specified. In this + mode the proposed operations will be chosen so that both source directories + are equal afterwards. Also the merge result will be written to both directories. + Default is off. + Copy newer instead of merging: Instead of merging the proposed + operation will copy the newer source if changes happened. (Considered unsafe, + because it implies that you know, that the other file hasn't been edited + too. Check to make sure in every case.) Default is off. + Backup files: If a file or complete directory is replaced + by another or is deleted then the original version will be renamed with an + ".orig" extension. If an old backup file with ".orig" extension already exists + then this will be deleted without backup. This also affects the normal merging + of single files, not only in directory-merge mode. Default is on. + + + +Other Functions in Directory Merge Window +Split/Full Screen Mode + + Usually the directory merge list view remains visible while a single file + is compared or merged. With the mouse you can move the the splitter bar that + separates the file list from the text-diff windows. If you don't want this, + you can disable "Split Screen View" in the "Directory"-menu. Then you can + use "Toggle View" in the "Directory"-menu to switch between the file list + and the text-diff view that then occupy the full screen. + + +Comparing or Merging a Single File + + Probably you will prefer a simple double mouse click on a file in order + to compare it. Nevertheless there also exists an entry in the "Directory"-menu. + You can also directly merge a single file by selecting it and + choosing "Merge current file" in the "Merge"-Menu. On saving the + result, the status will be set to done, and the file will not be merged again + if a directory merge is started. + + But note that this status information will be lost when you rerun a directory + scan: "Directory"-menu: "Rescan" + + +Comparing or Merging Files with Different Names + + Sometimes you need to compare or merge files with different names (e.g. the current + file and the backup in the same folder). + + Select the exact file by clicking onto the icon in the column A, B or C. The first + file selected thus will be marked with an "A", the second and third with "B" and "C" + regardless on what column they are in. Only up to three files can be chosen like this. + + Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely + Selected Files" from the "Directory"-menu. For your convenience these menu entries + also appear as context menu when you right-click the last selected file. + + The comparison or merge of a file will happen in the same window. + If this method is used for directories a new window will be opened. + + +
+ + +Miscellaneous Topics + +Networktransparency via KIO +KIO-Slaves + +KDE supports networktransparency via KIO-slaves. &kdiff3; uses this +for reading input files and for scanning directories. +This means that you can specify files and directories on local and +remote resources via URLs. + +Example: + + + kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp + kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir + + +The first line compares a local file with a file on an FTP-server. The second line +compares a directory within an compressed archive with a local directory. + +Other KIO-slaves that are interesting are: + + +Files from the WWW (http:), +Files from the FTP (ftp:), +Encrypted file transfer (fish:, sftp:), +Windows-ressources (smb:), +Local files (file:), + + +Other things that are possible, but probably less useful are: + + +Man-pages (man:), +Info-pages (info:), + + + +How To Write URLs + + An URL has a different syntax compared with paths for local files and directories. + Some things should be considered: + + + + A path can be relative and can contain "." or "..". This is not possible for URLs + which are always absolute. + + Special characters must be written with "escaping". ("#"->"%23", space->"%20", etc.) + E.g. A file with the name "/#foo#" would have the URL "file:/%23foo%23". + + When URLs don't work as expected, try to open them in Konqueror first. + + + + + +Capabilities of KIO-Slaves + + Networktransparency has one drawback: Not all ressources have the same cababilities. + + Sometimes this is due to the file system of the server, sometimes due to the protocol. + Here is a short list of restrictions: + + + + Sometimes there is no support for links. + + Or there is no way to distinguish if a link points to a file or a directory; always + assuming a file. (ftp:, sftp:). + + Can't always determine the filesize. + + Limited support for permissions. + + No possibility to modify permissions or modification time, so permissions or time + of a copy will differ from the original. (See the option "Trust the size".) + (To modify permissions or modification time is only possible for local files.) + + + + + + +Using &kdiff3; as a KPart + +&kdiff3; is a KPart. Currently it implements the KParts::ReadOnlyPart-interface. + +It's main use is as difference-viewer in KDevelop. KDevelop always starts the +internal difference viewer first. To invoke &kdiff3; press the right mouse button +on the difference viewer window and select "Show in KDiff3Part" from the contextmenu. + +&kdiff3; normally requires two complete files as input. When used as part &kdiff3; +will assume that the inputfile is a patch-file in the unified format. &kdiff3; +then retrieves the original filenames from the patch-file. At least one of +the two files must be available. &kdiff3; will then invoke patch to +recreate the second file. + +In Konqueror you can select a patch-file and select "Preview in"-"KDiff3Part" from +the contextmenu. Be aware that this won't work if none of the original files are +available, and it is not reliable if the original file(s) have changed since the +patch-file was generated. + +When run as a part &kdiff3; only provides the a two-file-diff, a very small toolbar +and menu. Merging or directory-comparison are not supported then. + + + + + +Questions and Answers + +&reporting.bugs; +&updating.documentation; + + + + + Why is it called "&kdiff3;"? + + Tools named "KDiff" and "KDiff2" (now called "Kompare") already exist. Also "KDiff3" should suggest + that it can merge like the "diff3"-tool in the Diff-Tool collection. + + + + Why did I release it under GPL? + + I'm using GPL programs for a very long time now and learned very much + by having a look at many of the sources. Hence this is my "Thank You" + to all programmers that also did so or will do the same. + + + + Some buttons and functions are missing. What's wrong? + + You compiled from source but you probably didn't specify the correct KDE-prefix + with configure. By default configure wants to install in /usr/local but then KDE can't + find the user-interface ressource file (i.e. kdiff3ui.rc). The README-file contains + more information about the correct prefix. + + + + Often lines that are similar but not identical appear next to each other + but sometimes not. Why? + + Lines where only the amount of white space characters is different + are treated as "equal" at first, while just one different non-white character + causes the lines to be "different". If similar lines appear next to each + other, this actually is coincidence but this fortunately is often the case. + See also Manual Diff Help. + + + + Why must all conflicts be solved before the merge result can be saved? + + For each equal or different section the editor in the merge result + window remembers where it begins or ends. This is needed so that conflicts + can be solved manually by simply selecting the source button (A, B or C). + This information is lost while saving as text and it is too much effort to + create a special file format that supports saving and restoring all necessary + information. + + + + How can I synchronise the diff and merge views, so that all views show the same text position? + + Click into the summary column left of the text. (See also here.) + + + + Why does the editor in the merge result window not have an "undo"-function? + + This was too much effort until now. You can always + restore a version from one source (A, B or C) by clicking the respective + button. For big editing the use of another editor is recommended anyway. + + + + When I removed some text, then suddenly "<No src line>" appeared + and cannot be deleted. What does that mean and how can one remove this? + + For each equal or different section the editor in the merge result + window remembers where it begins or ends. "<No src line>" means + that there is nothing left in a section, not even a new line character. + This can happen either while merging automatically or by editing. This is + no problem, since this hint won't appear in the saved file. If you want + the orignal source back just select the section (click on the left summary + column) and then click the source button with the needed contents (A/B or + C). + + + + Why doesn't &kdiff3; support syntax-highlighting? + + &kdiff3; already uses many colors for difference highlighting. More + highlighting would be confusing. Use another editor for this. + + + + Can I use &kdiff3; to compare OpenOffice.Org, Word, Excel, PDF-, &etc; files? + + Although &kdiff3; will analyse any kind of file the result will probably + not be very satisfactory for you. + + &kdiff3; was made to compare pure text files. OpenOffice, Word, Excel etc. + store much more information in the files (about fonts, pictures, pages, + colors etc.) which &kdiff3; doesn't know about. So &kdiff3; will + show you the contents of the file interpreted as pure text, but + this might be unreadable or at least it will look very odd. + + Since most programs nowadays store their contents in XML-format, you might + be able to read it as pure text. So if the change was only small, + &kdiff3; still might help you. + + The best solution if you only want to compare the text (without embedded + objects like pictures) is to use "Select All" and "Copy" in your program + to copy the interesting text to the clipoard and then in &kdiff3; paste the + text into either diff input window. + (See also Select, Copy And Paste.) + + + + Where has the the directory option "List only deltas" gone? + + There are now several "Show"-options in the directory menu. + Disabling "Show identical files" will achieve what enabling "List only deltas" used to do. + + + + How can I make a big selection in the diff input window + because scrolling takes so long? + + Start the selection as usual (click and hold the left mouse button). + Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down. + (See also Select, Copy And Paste.) + + + + There is so much information here, but your question is still not answered? + + Please send me your question. I appreciate every comment. + + + + + + + +Credits and License + + +&kdiff3; - File and Directory Comparison and Merge Tool + + +Program copyright 2002-2007 Joachim Eibl joachim.eibl at gmx.de + + +Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! + + + +Documentation Copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + + + + +&underFDL; + + +&underGPL; + + + + +Installation + + +How to obtain &kdiff3; + + +You can download the latest version of &kdiff3; from its homepage http://kdiff3.sourceforge.net. + +&kdiff3; is also available for other platforms. See the homepage for details. + + + + + + +Requirements + + + In order to successfully use all features of &kdiff3;, you need &kde; >3.1. + + For information about how to run &kdiff3; on other platforms without KDE please see the + homepage. + +You can find a list of changes at http://kdiff3.sourceforge.net/ChangeLog +or in the "ChangeLog"-file of the source package. + + + + +Compilation and Installation + +In order to compile and install &kdiff3; on a system with KDE, type the +following in the base directory of the &kdiff3; distribution: + +% ./configure --prefix=kde-dir +% make +% make install + + +kde-dir specifies the directory +containing KDE on your system. If you are not sure, read the README-file for details. + +If you don't use KDE don't use configure but follow the instructions for Qt-only systems in the README file. +Since &kdiff3; uses autoconf and +automake you should have no trouble compiling it. Should you +run into problems please report them to the &kde; mailing lists. + + + + + +&documentation.index; +
+ + diff --git a/doc/en/index.html b/doc/en/index.html new file mode 100644 index 0000000..6f9a4a8 --- /dev/null +++ b/doc/en/index.html @@ -0,0 +1,16 @@ +The KDiff3 Handbook
The KDiff3 Handbook

The KDiff3 Handbook

Joachim Eibl

Revision 0.9.92 (2007-31-03)

Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, +Version 1.1 or any later version published by the Free Software +Foundation; with no Invariant Sections, with no Front-Cover Texts, and +with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

+ KDiff3 is a file and directory diff and merge tool which +

  • compares and merges two or three text input files or directories,

  • shows the differences line by line and character by character(!),

  • provides an automatic merge-facility,

  • has an editor for comfortable solving of merge-conflicts,

  • provides networktransparency via KIO,

  • has options to highlight or hide changes in white-space or comments,

  • supports Unicode, UTF-8 and other file encodings,

  • prints differences,

  • supports version control keyword and history merging.

+

+ This document describes KDiff3-version 0.9.92. +


Table of Contents

1. Introduction
Yet Another Diff Frontend?
Screenshots and Features
More Features
Line-By-Line And Char-By-Char Diff-Viewer
See White-Space Differences At One Glance
Triple-Diff
Comfortable Merge Of Two Or Three Input Files
And ...
2. File Comparison And Merge
Command-Line Options
Comparing 2 files:
Merging 2 files:
Comparing 3 files:
Merging 3 files:
Special case: Files with the same name
Commandline for starting a directory comparison or merge:
Other command line options
Ignorable command line options
Open-Dialog
Paste and Drop Input
Comparing Files And Interpreting The Information In The Input Windows
Info Line
Coloring
Summary Column
Overview Column
Manually Aligning Lines
Manually Joining and Splitting Diff Sections
Merging And The Merge Output Editor Window
The Summary Column
Setting The Current Group And Synchronising Merge And Diff View Position
Choosing Inputs A, B or C For Current Conflict And Editing
Choosing Input A, B, or C for All Conflicts
Automatic Merge of Version Control Keywords and History (Log)
Navigation And Editing
Auto-Advance
Select, Copy And Paste
Saving
Finding Strings
Printing
Options
Font
Colors
Editor Settings
Diff Settings
Merge Settings
Directory Merge
Regional and Language Options
Miscellaneous
Configuring Keyboard-Shortcuts
Preprocessor Commands
sed Basics
Examples For sed-Use In KDiff3
Order Of Preprocessor Execution
Warning
3. Directory Comparison and Merge with KDiff3
Introduction into Directory Comparison and Merge
Starting Directory Comparison Or Merge
Compare/Merge two directories:
Compare/Merge three directories:
Directory Merge Visible Information
The Name Column
The Columns A/B/C and the Coloring Scheme
The Operation Column
The Status Column
Statistics Columns
Selecting Listed Files
Doing A Directory Merge
Options for Comparing and Merging Directories
Other Functions in Directory Merge Window
Split/Full Screen Mode
Comparing or Merging a Single File
Comparing or Merging Files with Different Names
4. Miscellaneous Topics
Networktransparency via KIO
KIO-Slaves
How To Write URLs
Capabilities of KIO-Slaves
Using KDiff3 as a KPart
5. Questions and Answers
6. Credits and License
A. Installation
How to obtain KDiff3
Requirements
Compilation and Installation


Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/installation.html b/doc/en/installation.html new file mode 100644 index 0000000..4ec8498 --- /dev/null +++ b/doc/en/installation.html @@ -0,0 +1,6 @@ +Appendix A. Installation
Installation

Appendix A. Installation

How to obtain KDiff3

+You can download the latest version of KDiff3 from its homepage http://kdiff3.sourceforge.net. +

+KDiff3 is also available for other platforms. See the homepage for details. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/interpretinginformation.html b/doc/en/interpretinginformation.html new file mode 100644 index 0000000..90c15fd --- /dev/null +++ b/doc/en/interpretinginformation.html @@ -0,0 +1,68 @@ +Comparing Files And Interpreting The Information In The Input Windows
Comparing Files And Interpreting The Information In The Input Windows

Comparing Files And Interpreting The Information In The Input Windows



Info Line

+ At the top of each text window is its "info line". The info lines of + the input windows contain a letter "A", "B" or "C", the editable filename, + a button for browsing, and the line number of the first visible line in the window. + (Note that window "C" is optional.) Each info line appears in a different color. +

+ When you selected another file via browsing or finished editing the filename here + by pressing enter, the new file will be loaded and + compared with the already loaded file(s). +

Coloring

+ The three input windows are assigned the letters "A", "B" and "C". + "A" has color blue, "B" has green and "C" has magenta. (These are the + defaults, but can be changed in the Settings-Menu.) +

+ When a difference is detected then the color shows which input file + differs. When both other input files differ then the color used to express + this is red by default ("Conflict color" in the Settings). + This colorscheme is especially useful in the case of three input files, which will be + seen in the next section (Merging). +

Summary Column

+ Left of each text is the "summary column". If differences occurred on a + line then the summary column shows the respective color. For a white-space-only + difference the summary is chequered. For programming languages where white + space is not so important this is useful to see at one glance if anything + of importance was modified. (In C/C++ white space is only interesting within + strings, comments, for the preprocessor, and some only very esoteric situations.) +

+ The vertical line separating the summary column and the text is interrupted + if the input file had no lines there. When word-wrap is enabled then this vertical + line appears dotted for wrapped lines. +

Overview Column

+ On the right side a "overview"-column is visible left of the vertical scrollbar. + It shows the compressed summary column of input "A". All the differences + and conflicts are visible at one glance. When only two input windows are + used, then all differences appear red here because every difference is + also a conflict. A black rectangle frames the visible part of the inputs. + For very long input files, when the number of input lines is bigger than + the height of the overview column in pixels, then several input lines share + one overview line. A conflict then has top priority over simple differences, + which have priority over no change, so that no difference or conflict is + lost here. By clicking into this overview column the corresponding text + will be shown. +

Manually Aligning Lines

+ Sometimes the algorithm places the wrong lines next to each other. Or you want to compare + one piece of text with text at a completely different position in the other file. + For these situations you can manually instruct KDiff3 to align certain lines. + Mark the text for which you want to improve the alignment with the mouse as you would + for copy and paste in the first diff view and then choose "Add Manual Diff Alignment" + in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in + the summary column next to the chosen text. Repeat this for the second and + (if available) third diff view. KDiff3 will immediately recalculate the differences everytime you do this. + and will align the chosen lines. Of course some of the previously matching lines in between + might not match anymore. +

+ Currently merging doesn't support the use of manual diff help. +

Manually Joining and Splitting Diff Sections

+ In some cases KDiff3 will see too many or too few diff sections for merging. In such a + case you can join or split existing sections. +

+ Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). + Then choose "Split Diff At Selection" in the "Merge" menu. + Splits will be added above the first line and below the last line of the selected text. + If you only want to add one section, then select text beginning at another section-split. +

+ For joining sections in either input window select something in the lines from the sections to join. + (You can join several sections in one step too.) Then choose "Join selected Diffs" in the "Merge"-menu. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/introduction.html b/doc/en/introduction.html new file mode 100644 index 0000000..d7c2429 --- /dev/null +++ b/doc/en/introduction.html @@ -0,0 +1,32 @@ +Chapter 1. Introduction
Introduction

Chapter 1. Introduction

Yet Another Diff Frontend?

+Several graphical diff tools exist. Why choose KDiff3? Let me say, why I wrote it. +

+KDiff3 started because I had to do a difficult merge. Merging is necessary when several +people work on the same files in a project. A merge can be somewhat automated, when the +merge-tool not only has the new modified files (called "branches"), but also the original file +(called "base"). The merge tool will automatically choose any modification that was only +done in one branch. When several contributors change the same lines, then the merge tool +detects a conflict which must be solved manually. +

+The merge then was difficult because one contributor had changed many things and corrected +the indentation in many places. Another contributor also had changed much text in the same file, +which resulted in several merge conflicts. +

+The tool I used then, only showed the changed lines, but not what had changed within these +lines. And there was no information about where only the indentation was changed. The merge +was a little nightmare. +

+So this was the start. The first version could show differences within a line and showed white space differences. +Later many other features were added to increase the usefulness. +

+For example if you want to compare some text quickly, then you can copy it to the clipboard and +paste it into either diff window. +

+A feature that required a big effort was the directory comparison and merge facility, which turned +the program almost into a full file browser. +

+I hope KDiff3 works for you too. Have fun! +

+Joachim Eibl (2003) +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/iteminfo.png b/doc/en/iteminfo.png new file mode 100644 index 0000000..0b81443 Binary files /dev/null and b/doc/en/iteminfo.png differ diff --git a/doc/en/kdiff3.1 b/doc/en/kdiff3.1 new file mode 100644 index 0000000..3b9c492 --- /dev/null +++ b/doc/en/kdiff3.1 @@ -0,0 +1,89 @@ +.TH "KDIFF3" "1" +.SH "NAME" +KDiff3 \(em compares two or three input files or directories +.SH "SYNOPSIS" +.PP +\fBKDiff3\fR [\fBQT options\fP] [\fBKDE options\fP] [\fBKDiff3 options\fP] [\fB\fIFile1/base\fR\fP] [\fB\fIFile2\fR\fP] [\fB\fIFile3\fR\fP] +.SH "DESCRIPTION" +.PP +This manual page documents briefly the +\fBKDiff3\fR tool. +.PP +This manual page was written for the \fBDebian\fP distribution +because the original program does not have a manual page. +For comprehensive help, please see \fBkhelpcenter help:/kdiff3\fR. + +.PP +\fBKDiff3\fR is a program that + +.IP " \(bu" 6 +compares or merges two or three text input files or directories +.IP " \(bu" 6 +shows the differences line by line and character by character +.IP " \(bu" 6 +provides an automatic merge-facility and +.IP " \(bu" 6 +an integrated editor for comfortable solving of merge-conflicts +.IP " \(bu" 6 +supports Unicode, UTF-8 and other codecs +.IP " \(bu" 6 +supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.) +.IP " \(bu" 6 +Printing of differences +.IP " \(bu" 6 +Manual alignment of lines +.IP " \(bu" 6 +Automatic merging of version control history ($Log$) +.SH "OPTIONS" +.PP +This program follows the usual GNU command line syntax, +with long options starting with two dashes (`\-'). A summary of +options is included below. For a full summary of options, run +\fBKDiff3 \-\-help\fR. + +.IP "\fB-m, \-\-merge\fP " 10 +Merge the input. +.IP "\fB-b, \-\-base file\fP " 10 +Explicit base file. For compatibility with certain tools. +.IP "\fB-o, \-\-output file\fP " 10 +Output file. Implies \-m. E.g.: \-o newfile.txt +.IP "\fB\-\-out file\fP " 10 +Output file, again. (For compatibility with certain tools.) +.IP "\fB\-\-auto\fP " 10 +No GUI if all conflicts are auto-solvable. (Needs \-o file) +.IP "\fB\-\-qall\fP " 10 +Don't solve conflicts automatically. (For compatibility...) +.IP "\fB-L1 alias\fP " 10 +Visible name replacement for first file/base file. +.IP "\fB-L2 alias\fP " 10 +Visible name replacement for second file. +.IP "\fB-L3 alias\fP " 10 +Visible name replacement for third file. +.IP "\fB-L, \-\-fname alias\fP " 10 +Visible name replacement. May by supplied for each input. +.IP "\fB\-\-cs string\fP " 10 +Change a setting, e. g. \-\-cs "AutoAdvance=1". +.IP "\fB\-\-confighelp\fP " 10 +Show a list of all settings and their values. +.IP "\fB\-\-config file \fP " 10 +Use a different settings file. +.IP "\fB\-\-author\fP " 10 +Show author of program. +.IP "\fB-v, \-\-version\fP " 10 +Show version of program. +.IP "\fB\-\-license\fP " 10 +Show license of program. +.SH "AUTHOR" +.PP +This manual page was written by Eike Sauer for +the \fBDebian\fP system (but may be used by others). Permission is +granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License, Version 2 +(or, at your option, any later version published by the Free +Software Foundation). + +.PP +On Debian systems, the complete text of the GNU General Public +License can be found in /usr/share/common-licenses/GPL. + +.\" created by instant / docbook-to-man, Tue 13 Nov 2007, 15:25 diff --git a/doc/en/kpart.html b/doc/en/kpart.html new file mode 100644 index 0000000..63094d3 --- /dev/null +++ b/doc/en/kpart.html @@ -0,0 +1,22 @@ +Using KDiff3 as a KPart
Using KDiff3 as a KPart

Using KDiff3 as a KPart

+KDiff3 is a KPart. Currently it implements the KParts::ReadOnlyPart-interface. +

+It's main use is as difference-viewer in KDevelop. KDevelop always starts the +internal difference viewer first. To invoke KDiff3 press the right mouse button +on the difference viewer window and select "Show in KDiff3Part" from the contextmenu. +

+KDiff3 normally requires two complete files as input. When used as part KDiff3 +will assume that the inputfile is a patch-file in the unified format. KDiff3 +then retrieves the original filenames from the patch-file. At least one of +the two files must be available. KDiff3 will then invoke patch to +recreate the second file. +

+In Konqueror you can select a patch-file and select "Preview in"-"KDiff3Part" from +the contextmenu. Be aware that this won't work if none of the original files are +available, and it is not reliable if the original file(s) have changed since the +patch-file was generated. +

+When run as a part KDiff3 only provides the a two-file-diff, a very small toolbar +and menu. Merging or directory-comparison are not supported then. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/letter_by_letter.png b/doc/en/letter_by_letter.png new file mode 100644 index 0000000..8ddd48a Binary files /dev/null and b/doc/en/letter_by_letter.png differ diff --git a/doc/en/merge_current.png b/doc/en/merge_current.png new file mode 100644 index 0000000..3f2e341 Binary files /dev/null and b/doc/en/merge_current.png differ diff --git a/doc/en/merging.html b/doc/en/merging.html new file mode 100644 index 0000000..7331292 --- /dev/null +++ b/doc/en/merging.html @@ -0,0 +1,195 @@ +Merging And The Merge Output Editor Window
Merging And The Merge Output Editor Window

Merging And The Merge Output Editor Window



+ The merge output editor window (below the diff input windows) also has an info line at the top showing "Output:", the + filename and "[Modified]" if you edited something. Usually it will contain + some text through the automatic merge facilities, but often it will also + contain conflicts. +

+ !!! Saving is disabled until all conflicts are resolved !!! (Use the "Go + to prev/next unsolved conflicts"-buttons to find the remaining conflicts.) +

+ With only two input files every difference is also a conflict that must + be solved manually. +

+ With three input files the first file is treated as base, while the + second and third input files contain modifications. When at any line only + either input B or input C have changed but not both then the changed source + will automatically be selected. Only when B and C have changed on the same + lines, then the tool detects a conflict that must be solved manually. + When B and C are the same, but not the same as A, then C is selected. +

The Summary Column

+ The merge output editor window also has a summary column on the left. It shows the + letter of the input from which a line was selected or nothing if all three + sources where equal on a line. For conflicts it shows a questionmark "?" + and the line shows "<Merge Conflict>", all in red. Because solving + conflicts line by line would take very long, the lines are grouped into + groups that have the same difference and conflict characteristics. + But only-white-space-conflicts are separated from non-white-space-conflicts + in order to ease the merging of files were the indentation changed for many + lines. +

Setting The Current Group And Synchronising Merge And Diff View Position

+ When clicking into the summary column with the left mouse button in either + window then the beginning of the group belonging to that line will shown in all windows. + This group then becomes the "current group". It is highlighted with the + "Current range (diff) background color" and + a black bar appears on the left side of the text. +

Choosing Inputs A, B or C For Current Conflict And Editing

+ The button bar below the menubar contains three input selector buttons + containing the letters "A", "B" and "C". Click the input selector + button to insert (or remove if already inserted) the lines from the respective source. + To choose the lines from several inputs click the respective buttons in the + needed order. For example if you want that the lines from "B" appear before + the lines from "A" in the output, first click "B", then "A". +

+ If you use the auto-advance option + ("Automatically go to next unsolved conflict after source selection"), + you should disable this before choosing lines from several inputs or if you want to + edit the lines after your choice. Otherwise KDiff3 will jump to the next + conflict after choosing the first input. +

+ It is often helpful directly edit the merge output. + The summary column will show "m" for every line that was manually modified. + When for instance the differences are aligned in a way that simply choosing + the inputs won't be satisfactory, then you can mark the needed text and use + normal copy and paste to put it into the merge output. +

+ Sometimes, when a line is removed either by automatic merge or by editing + and no other lines remain in that group, then the text <No src line> + will appear in that line. This is just a placeholder for the group for + when you might change your mind and select some source again. This text won't + appear in the saved file or in any selections you want to copy and paste. +

+ The text "<Merge Conflict>" will appear in the clipboard if you + copy and paste some text containing such a line. But still be careful to + do so. +

Choosing Input A, B, or C for All Conflicts

+ The normal merge will start by solving simple conflicts automatically. + But the "Merge"-menu provides some actions for other common needs. + If you have to select the same source for most conflicts, then you can + choose "A", "B" or "C" everywhere, or only for the remaining unsolved + conflicts, or for unsolved white space conflicts. If you want to decide every + single delta yourself, you can "Set deltas to conflicts". Or if you want to + return to the automatic choices of KDiff3 then select + "Automatically solve simple conflicts". KDiff3 then restarts the merge. + For actions that change your previous modifications KDiff3 will ask for your + confirmation before proceeding. +

+ Note: When choosing either source for unsolved white space conflicts and + the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in + numbers or comments will be treated like white space too. + +

Automatic Merge of Version Control Keywords and History (Log)

+Many version control systems support special keywords in the file. (e.g. "$Date$", +"$Header$", "$Author$", "$Log$" etc.) During the +check-in the version control system (VCS) changes these lines. For instance +"$Date$" will turn into "$Date: 2005/03/22 18:45:01 $". Since this line will +be different in every version of the file, it would require manual interaction +during the merge. +

+KDiff3 offers automatic merge for these items. For simple lines that match the +"Auto merge regular expression"-option in all input-files KDiff3 will choose +the line from B or - if available - from C. (Additionally it is necessary that the lines +in question line up in the comparison and the previous line contains no conflict.) +This auto merge can either be run immediately after a merge starts (activate the option +"Run regular expression auto merge on merge start") or later via the merge +menu "Run Regular Expression Auto Merge". +

+Automatic merge for version control history (also called "log") is also supported. +The history automerge can either run immediately when the merge starts by activating the +option "Merge version control history on merge start" or later via the merge menu +"Automatically Solve History Conflicts". +

+Usually the version control history begins with a line containing the keyword "$Log$". +This must be matched by the "History start regular expression"-option. +KDiff3 detects which subsequent lines are in the history by analysing the leading characters +that came before the "$Log$"-keyword. If the same "leading comment"-characters also appears in the following +lines, then they are also included in the history. +

+During each check-in the VCS writes a unique line specifying version-, date- and time-information +followed by lines with user comments. +These lines form one history-entry. This history section grows with every check-in and the +most recent entries appear at the top (after the history start line). +

+When for parallel development two or more developers check-in a branch of the file then +the merge history will contain several entries that appear as conflicts during the merge +of the branches. Since merging these can become very tedious, KDiff3 offers support with two +possible strategies: Just insert the history information from both contributors at the top +or sort the history information by a user defined key. +

+The just-insert-all-entries-method is easier to configure. KDiff3 just needs a method to +detect, which lines belong to one history entry. Most VCS insert an empty line after each +history entry. If there are no other empty lines, this is a sufficient criterion for KDiff3. +Just set an empty "History entry start regular expression". If the empty line criterion +isn't sufficient, you can specify a regular expression to detect the history entry start. +

+Note that KDiff3 will remove duplicate history entrys. If a history entry appeared several times +in the history of a input file, only one entry will remain in the output. +

+If you want to sort the history, then you have to specify how the sort key should be built. +Use parentheses in the "History entry start regular expression" to group parts of the regular +expression that should later be used for the sort key. +Then specify the "History entry start sort key order" specifying a comma "," separated list of +numbers referring to the position of the group in the regular expression. +

+Because this is not so easy to get right immediately, you are able to test and improve +the regular expressions and key-generation in a dedicated dialog by pressing the +"Test your regular expressions"-button. +

Example: Assume a history that looks like this: +

+/**************************************************************************
+** HISTORY:    $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $
+**
+**     \main\integration_branch_12   2 Apr 2001 10:45:41   tom
+**  Merged branch simon_branch_15.
+**
+**     \main\henry_bugfix_branch_7\1   30 Mar 2001 19:22:05   henry
+**  Improved the speed for subroutine convertToMesh().
+**  Fixed crash.
+**************************************************************************/
+
+The history start line matches the regular expression ".*\$Log.*\$.*". Then follow +the history entries. +

+The line with the "$Log$"-keyword begins with two "*" after which follows a space. +KDiff3 uses the first non-white-space string as "leading comment" and assumes that +the history ends in the first line without this leading comment. In this example the +last line ends with a string that also starts with two "*", but instead of a space +character more "*" follow. Hence this line ends the history. +

+If history sorting isn't required then the history entry start line regular expression +could look like this. (This line is split in two because it wouldn't fit otherwise.) +

+\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
+
+For details about regular expressions please see the +regular expression documentation by Trolltech. +Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space. +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 ".*". +

+Note that the "leading comment"-characters (in the example "**") will already be removed by KDiff3 +before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*". +Because comment characters can differ in each file (e.g. C/C++ uses other comment characters than a Perl script) +KDiff3 takes care of the leading comment characters and you should not specify them in the regular expression. +

+If you require a sorted history. Then the sortkey must be calculated. For this the +relevant parts in the regular expression must be grouped by parentheses. +(The extra parentheses can also stay in if history sorting is disabled.) +

+\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
+ ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
+
+The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. +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: +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". +

+Because month names aren't good for sorting ("Apr" would be first) KDiff3 detects in which order +the month names were given and uses that number instead ("Apr"->"04"). +And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting. +Finally the resulting sort key for the first history entry start line will be: +

+2001 04 0002 10:45:41 integration_branch_12   tom 
+
+

+For more information also see Merge Settings. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/misc.html b/doc/en/misc.html new file mode 100644 index 0000000..34b13cf --- /dev/null +++ b/doc/en/misc.html @@ -0,0 +1,49 @@ +Chapter 4. Miscellaneous Topics
Miscellaneous Topics

Chapter 4. Miscellaneous Topics

Networktransparency via KIO

KIO-Slaves

+KDE supports networktransparency via KIO-slaves. KDiff3 uses this +for reading input files and for scanning directories. +This means that you can specify files and directories on local and +remote resources via URLs. +

+Example: +

+

+   kdiff3 test.cpp  ftp://ftp.faraway.org/test.cpp
+   kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir
+
+

The first line compares a local file with a file on an FTP-server. The second line +compares a directory within an compressed archive with a local directory. +

+Other KIO-slaves that are interesting are: +

  • Files from the WWW (http:),

  • Files from the FTP (ftp:),

  • Encrypted file transfer (fish:, sftp:),

  • Windows-ressources (smb:),

  • Local files (file:),

+Other things that are possible, but probably less useful are: +

  • Man-pages (man:),

  • Info-pages (info:),

How To Write URLs

+ An URL has a different syntax compared with paths for local files and directories. + Some things should be considered: +

  • + A path can be relative and can contain "." or "..". This is not possible for URLs + which are always absolute. +

  • + Special characters must be written with "escaping". ("#"->"%23", space->"%20", etc.) + E.g. A file with the name "/#foo#" would have the URL "file:/%23foo%23". +

  • + When URLs don't work as expected, try to open them in Konqueror first. +

Capabilities of KIO-Slaves

+ Networktransparency has one drawback: Not all ressources have the same cababilities. +

+ Sometimes this is due to the file system of the server, sometimes due to the protocol. + Here is a short list of restrictions: +

  • + Sometimes there is no support for links. +

  • + Or there is no way to distinguish if a link points to a file or a directory; always + assuming a file. (ftp:, sftp:). +

  • + Can't always determine the filesize. +

  • + Limited support for permissions. +

  • + No possibility to modify permissions or modification time, so permissions or time + of a copy will differ from the original. (See the option "Trust the size".) + (To modify permissions or modification time is only possible for local files.) +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/navigation.html b/doc/en/navigation.html new file mode 100644 index 0000000..ccfce59 --- /dev/null +++ b/doc/en/navigation.html @@ -0,0 +1,38 @@ +Navigation And Editing
Navigation And Editing

Navigation And Editing

+ Much navigation will be done with the scroll bars and the mouse but + you can also navigate with the keys. If you click into either window then + you can use the cursor buttons left, right, up, down, page up, page down, + home, end, ctrl-home, ctrl-end as you would in other programs. The overview-column + next to the vertical scroll bar of the input files can also be used for + navigating by clicking into it. +

+ You can also use the wheel mouse to scroll up and down. +

+ In the merge output editor you can also use the other keys for editing. + You can toggle between insert and overwrite mode with the insert key. (Default + is insert-mode.) +

+ A left-mouse-button-click into any summary column will synchronise all + windows to show the beginning of the same group of lines (as explained + in section "Setting The Current Group And Synchronising Merge And Diff View Position"). +

+ The button bar also contains nine navigation buttons with which you can + jump to the current/first/last difference, to the next/previous difference + (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup), + or to the next/previous unsolved conflict. Note that for KDiff3 a "conflict" + that was not automatically solved at the start of the merge stays a "conflict" + even if it is solved. Hence the necessity to distinguish "unsolved conflicts". +

Auto-Advance

+ There also is a button "Automatically go to next unsolved conflict after + source selection" (Auto-Advance). If you enable this, then, when one source + is selected, KDiff3 will jump to and select the next unsolved conflict + automatically. This can help when you always want to choose one source only. + When you need both sources, or you want to edit after selecting, then you + probably want to switch this off. Before proceeding to the next unsolved conflict + KDiff3 shows you the effect of your choice for a short time. This delay is + adjustable in the Diff- & Merge-Settings: You can + specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint: + Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts + Ctrl-1/2/3 to select A/B/C for many conflicts. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/new.png b/doc/en/new.png new file mode 100644 index 0000000..df3fd25 Binary files /dev/null and b/doc/en/new.png differ diff --git a/doc/en/open_dialog.png b/doc/en/open_dialog.png new file mode 100644 index 0000000..029f8d4 Binary files /dev/null and b/doc/en/open_dialog.png differ diff --git a/doc/en/opendialog.html b/doc/en/opendialog.html new file mode 100644 index 0000000..58ec755 --- /dev/null +++ b/doc/en/opendialog.html @@ -0,0 +1,23 @@ +Open-Dialog
Open-Dialog

Open-Dialog

+ Since many input files must be selectable, the program has a special open dialog: +



+ The open dialog allows to edit the filenames by hand, selecting a file + via the file-browser ("File...") or allows to choose recent files from + the drop-down lists. If you open the dialog again, then the current names + still remain there. The third input file is not required. If the + entry for "C" remains empty, then only a two file diff analysis will be + done. +

+ You can also select a directory via "Dir...". If for A a directory is specified + then a directory-comparison/merge starts. If A specifies a file but B, C or + the output specify a directory, then KDiff3 uses the filename from A in the + specified directories. +

+ If "Merge" is selected, then the "Output"-line becomes editable. But it + is not required to specify the output filename immediately. You can also + postpone this until saving. +

+ The "Configure..."-button opens the options-dialog, so that you can set + the options before running the analysis. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/options.html b/doc/en/options.html new file mode 100644 index 0000000..cff21f9 --- /dev/null +++ b/doc/en/options.html @@ -0,0 +1,138 @@ +Options
Options

Options

+ Options and the recent-file-list will be saved when you exit the program, + and reloaded when you start it. (Menu Settings->Configure KDiff3 ...) +

Font

+ Select a fixed width font. (On some systems this dialog will also + present variable width fonts, but you should not use them.) +

Italic Font for Deltas:

If you select this, then text differences + will be drawn with the italic version of the selected font. If the font + doesn't support italic, then this does nothing.

Colors

Foreground color:

Usually black.

Background color:

Usually white.

Diff Background color:

Usually light gray.

Color A:

Usually dark blue.

Color B:

Usually dark green.

Color C:

Usually dark magenta.

Conflict Color:

Usually red.

Current range background color:

Usually light yellow.

Current range diff background color:

Usually dark yellow.

Color for manually selected diff ranges:

Usually orange.

Newest file color in directory comparison:

Usually green.

Oldest file color in directory comparison:

Usually red.

Middle age file color in directory comparison:

Usually dark yellow.

Color for missing files in directory comparison:

Usually black.

+ Changing the colors for directory comparison will be effective only when starting the next directory comparison. +

+ On systems with only 16 or 256 colors some colors are not available in pure + form. On such systems the "Defaults"-button will choose a pure color. +

Editor Settings

Tab inserts spaces:

If this is disabled and you press the + tabulator key, a tab-character is inserted, otherwise the appropriate + amount of characters is inserted.

Tab size:

Can be adjusted for your specific needs. Default is 8.

Auto indentation:

When pressing Enter or Return the indentation + of the previous line is used for the new line.

Auto copy selection:

Every selection is immediately copied + to the clipboard when active and you needn't explicitely copy it.

Line end style:

When saving you can select what line + end style you prefer. The default setting is the common choice for the used operating system.

Diff Settings

+ When comparing files, KDiff3 first it tries to match lines that are equal + in all input files. Only during this step it might ignore white space. The + second step compares each line. In this step white space will not be ignored. + Also during the merge white space will not be ignored. +

Preserve Carriage Return:

Some editors (on some systems) save + carriage return '\r' and linefeed '\n'-characters at the end of line, while + others will only save the linefeed '\n'. Usually KDiff3 ignores the carriage + return, but then files that don't have equal sizes, look equal in side by + side comparison. When this option is on, then the carriage return characters + are made visible but are treated as white space. This option must be off + during a merge. Default is off.

Ignore numbers:

Default is off. Number characters ('0'-'9', '.', '-') + will be ignored in the first part of the analysis in which the line matching is + done. In the result the differences will be shown nevertheless, but they are treated + as white space. +

Ignore C/C++ comments:

Default is off. + Changes in comments will be treated like changes in white space. +

Ignore case:

Default is off. + Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space. +

Preprocessor-Command:

+ See next section. +

Line-Matching Preprocessor-Command:

+ See next section. +

Try Hard:

+ Try hard to find an even smaller delta. (Default is on.) This will probably + be effective for complicated and big files. And slow for very big files. +

Merge Settings

Auto Advance Delay (ms):

When in auto-advance-mode this setting specifies + how long to show the result of the selection before jumping to the next unsolved + conflict. +

White space 2/3-file merge default:

+ Automatically solve all white-space conflict by choosing the specified file. + (Default is manual choice.) Useful if white space really isn't important in many files. + If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts" + in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments" + then this auto-choice also applies for conflicts in numbers or comments. +

Auto merge regular expression:

+ Regular expression for lines where KDiff3 should automatically choose one source. See also Automatic Merge ... +

Run regular expression auto merge on merge start:

+ If activated KDiff3 runs the automatic merge using the "Auto merge regular expression" when a merge is started. +

History start regular expression:

+ Regular expression for the start of the merge history entry. + Usually this line contains the "$Log$"-keyword. + Default value: ".*\$Log.*\$.*" +

History entry start regular expression:

+ A merge history entry consists of several lines. + Specify the regular expression to detect the first line (without the leading comment). + Use parentheses to group the keys you want to use for sorting. + If left empty, then KDiff3 assumes that empty lines separate history entries. + See also Automatic Merge ... +

History merge sorting:

+ Enable version control history sorting. +

History entry start sort key order:

+ Each parentheses used in the regular expression for the history start entry + groups a key that can be used for sorting. + Specify the list of keys (that are numbered in order of occurrence + starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7"). + If left empty, then no sorting will be done. + See also Automatic Merge ... +

Merge version control history on merge start:

+ If activated KDiff3 runs the automatic history merging using aforementioned options when a merge is started. +

Max number of history entries:

+ KDiff3 truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1). +

Test your regular expressions

+ This button shows a dialog that allows you to improve and test the regular expressions above. + Just copy the respective data from your files into the example lines. The "Match results" + will immediately show whether the match succeeds or not. + The "Sort key result" will display the key used for history merge sorting. +

Irrelevant merge command:

+ Specify a command of your own that should be called when KDiff3 detects + that for a three file merge the file from B doesn't contribute any + relevant data that isn't already contained in the file from C. + The command is called with the three filenames as parameters. + Data matched by the "Auto merge regular expression" or in the + history isn't considered relevant. +

Directory Merge

+ These options are concerned with scanning the directory and handling the + merge: See the Directory Comparison/Merge + Docs for details. +

+Yet there is one option here that is also relevant for saving single files: +

Backup files:

When a file is saved and an older version already + exists, then the original version will be renamed with an ".orig" extension. + If an old backup file with ".orig" extension already exists then this will + be deleted without backup. +

Regional and Language Options

Language:

Adjust the language of the user interface. Changing this option doesn't affect the running program. You have to exit and restart KDiff3 so that the language is changed. (This option is not available in the KDE version of KDiff3 because the language is adjustable in the global KDE settings.) +

Use the same encoding for everything:

The following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value. +

Local Encoding:

Above the codec-selectors appears a note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.) +

File Encoding for A/B/C:

Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs. +

File Encoding for Merge Output and Saving:

When you have edited a file, then you can adjust which encoding will be used when saving to disk. +

File Encoding for Preprocessor Files:

When you define preprocessors then they might not be able to operate on your codec. (e.g.: Your files are 16-bit-unicode and your preprocessor can only take 8-bit-ascii.) With this option you can define the encoding of preprocessor output. +

Right To Left Language:

Some languages are written right to left. When this option is enabled, KDiff3 draws the text from right to left in the diff input windows and in the merge output window. Note that if you start KDiff3 with the command line option "--reverse" then all layouting will be done right to left too. (This is a feature provided by Qt.) This documentation was written assuming that "Right To Left Language" or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options. +

Miscellaneous

(These options and actions are available in menus or the buttonbar.)

Show line numbers:

You can select if line numbers should be + shown for the input files.

Show space and tabulator characters for differences:

Sometimes + the visible spaces and tabs are disturbing. You can turn this off.

Show white space:

Turn this off to suppress + any highlighting of white-space-only changes in the text or overview-columns. + (Note that this also applies to changes in numbers or comments if the options "Ignore numbers" + or "Ignore C/C++ comments" are active.)

Overview options:

+ These choices are only available when you compare three files. In normal mode all + differences are shown in one color-coded overview-column. But sometimes you are + especially interested in the differences between only two of these three files. + Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview + column with the required information next to the normal overview. +

Word wrap diff windows:

+ Wrap lines when their length would exceed the width of a window. +

Show Window A/B/C:

Sometimes you want to use the space on + the screen better for long lines. Hide the windows that are not important. + (In the Windows-menu.)

Toggle Split Orientation:

+ Switch between diff windows shown next to each other (A left of B left of C) or above + each other (A above B above C). This should also help for long lines. (In the Windows-menu.) +

Start a merge quickly:

+ Sometimes you are viewing the deltas and decide to merge. + + "Merge current file" in the Directory-menu also works if you only compare + two files. A single click starts the merge and uses the filename of the last + input-file as the default output filename. (When this is used to restart + a merge, then the output filename will be preserved.)

Configuring Keyboard-Shortcuts

+ Currently only the KDE-version supports user-configurable keyboard-shortcuts. + (Menu Settings->Configure Shortcuts...) +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/other.html b/doc/en/other.html new file mode 100644 index 0000000..8919bd5 --- /dev/null +++ b/doc/en/other.html @@ -0,0 +1,33 @@ +Other Functions in Directory Merge Window
Other Functions in Directory Merge Window

Other Functions in Directory Merge Window

Split/Full Screen Mode

+ Usually the directory merge list view remains visible while a single file + is compared or merged. With the mouse you can move the the splitter bar that + separates the file list from the text-diff windows. If you don't want this, + you can disable "Split Screen View" in the "Directory"-menu. Then you can + use "Toggle View" in the "Directory"-menu to switch between the file list + and the text-diff view that then occupy the full screen. +

Comparing or Merging a Single File

+ Probably you will prefer a simple double mouse click on a file in order + to compare it. Nevertheless there also exists an entry in the "Directory"-menu. + You can also directly merge a single file by selecting it and + choosing "Merge current file" in the "Merge"-Menu. On saving the + result, the status will be set to done, and the file will not be merged again + if a directory merge is started. +

+ But note that this status information will be lost when you rerun a directory + scan: "Directory"-menu: "Rescan" +

Comparing or Merging Files with Different Names

+ Sometimes you need to compare or merge files with different names (e.g. the current + file and the backup in the same folder). +

+ Select the exact file by clicking onto the icon in the column A, B or C. The first + file selected thus will be marked with an "A", the second and third with "B" and "C" + regardless on what column they are in. Only up to three files can be chosen like this. +

+ Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely + Selected Files" from the "Directory"-menu. For your convenience these menu entries + also appear as context menu when you right-click the last selected file. +

+ The comparison or merge of a file will happen in the same window. + If this method is used for directories a new window will be opened. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/pasteinput.html b/doc/en/pasteinput.html new file mode 100644 index 0000000..8d913ba --- /dev/null +++ b/doc/en/pasteinput.html @@ -0,0 +1,20 @@ +Paste and Drop Input
Paste and Drop Input

Paste and Drop Input

+ Sometimes you want to compare parts of a text that is not an own file. KDiff3 also + allows you to paste text from the clipboard into the diff input window that has the focus. + The diff analysis happens immediately then. + In the open dialog you need not specify files then, but just close it via "Cancel". +

+ You can also use drag and drop: Drag a file from a file manager + or selected text from an editor and drop it onto a diff input window. +

+ What's the idea? Sometimes a file contains two similar functions, but checking how similar + they really are is a big effort if you first must create two files and then load them. Now + you can simply copy, paste and compare the relevant sections. +

+ Note: Currently you cannot drag anything from KDiff3. Only dropping in the diff input + is supported. +

+ Warning: Some editors still interpret the drag and drop into another program like cut + (instead of copy) and paste. Your original data might be lost then. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/preprocessors.html b/doc/en/preprocessors.html new file mode 100644 index 0000000..427f717 --- /dev/null +++ b/doc/en/preprocessors.html @@ -0,0 +1,202 @@ +Preprocessor Commands
Preprocessor Commands

Preprocessor Commands

+KDiff3 supports two preprocessor options. +

+

Preprocessor-Command:

+ When any file is read, it will be piped through this external command. + The output of this command will be visible instead of the original file. + You can write your own preprocessor that fulfills your specific needs. + Use this to cut away disturbing parts of the file, or to automatically + correct the indentation etc. +

Line-Matching Preprocessor-Command:

+ When any file is read, it will be piped through this external command. If + a preprocessor-command (see above) is also specified, then the output of the + preprocessor is the input of the line-matching preprocessor. + The output will only be used during the line matching phase of the analysis. + You can write your own preprocessor that fulfills your specific needs. + Each input line must have a corresponding output line. +

+

+The idea is to allow the user greater flexibility while configuring the diff-result. +But this requires an external program, and many users don't want to write one themselves. +The good news is that very often sed or perl +will do the job. +

Example: Simple testcase: Consider file a.txt (6 lines): +

+      aa
+      ba
+      ca
+      da
+      ea
+      fa
+
+And file b.txt (3 lines): +
+      cg
+      dg
+      eg
+
+Without a preprocessor the following lines would be placed next to each other: +
+      aa - cg
+      ba - dg
+      ca - eg
+      da
+      ea
+      fa
+
+This is probably not wanted since the first letter contains the actually interesting information. +To help the matching algorithm to ignore the second letter we can use a line matching preprocessor +command, that replaces 'g' with 'a': +
+   sed 's/g/a/'
+
+With this command the result of the comparison would be: +
+      aa
+      ba
+      ca - cg
+      da - dg
+      ea - eg
+      fa
+
+Internally the matching algorithm sees the files after running the line matching preprocessor, +but on the screen the file is unchanged. (The normal preprocessor would change the data also on +the screen.) +

sed Basics

+This section only introduces some very basic features of sed. For more +information see info:/sed or + +http://www.gnu.org/software/sed/manual/html_mono/sed.html. +A precompiled version for Windows can be found at +http://unxutils.sourceforge.net. +Note that the following examples assume that the sed-command is in some +directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute +path for the command. +

Note

Also note that the following examples use the single quotation mark (') which won't work for Windows. +On Windows you should use the double quotation marks (") instead.

+In this context only the sed-substitute-command is used: +

+   sed 's/REGEXP/REPLACEMENT/FLAGS'
+
+Before you use a new command within KDiff3, you should first test it in a console. +Here the echo-command is useful. Example: +
+   echo abrakadabra | sed 's/a/o/'
+   -> obrakadabra
+
+This example shows a very simple sed-command that replaces the first occurance +of "a" with "o". If you want to replace all occurances then you need the "g"-flag: +
+   echo abrakadabra | sed 's/a/o/g'
+   -> obrokodobro
+
+The "|"-symbol is the pipe-command that transfers the output of the previous +command to the input of the following command. If you want to test with a longer file +then you can use cat on Unix-like systems or type +on Windows-like systems. sed will do the substitution for each line. +
+   cat filename | sed options
+
+

Examples For sed-Use In KDiff3

Ignoring Other Types Of Comments

+Currently KDiff3 understands only C/C++ comments. Using the +Line-Matching-Preprocessor-Command you can also ignore +other types of comments, by converting them into C/C++-comments. + +Example: To ignore comments starting with "#", you would like to convert them +to "//". Note that you also must enable the "Ignore C/C++-Comments" option to get +an effect. An appropriate Line-Matching-Preprocessor-Command would be: + +

+   sed 's/#/\/\//'
+
+Since for sed the "/"-character has a special meaning, it is necessary to place the +"\"-character before each "/" in the replacement-string. Sometimes the "\" is required +to add or remove a special meaning of certain characters. The single quotation marks (') before +and after the substitution-command are important now, because otherwise the shell will +try to interpret some special characters like '#', '$' or '\' before passing them to +sed. Note that on Windows you will need the double quotation marks (") here. Windows +substitutes other characters like '%', so you might have to experiment a little bit. +

Caseinsensitive Diff

+Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: +

+   sed 's/\(.*\)/\U\1/'
+
+Here the ".*" is a regular expression that matches any string and in this context matches +all characters in the line. +The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)". +The "\U" converts the inserted text to uppercase. +

Ignoring Version Control Keywords

+CVS and other version control systems use several keywords to insert automatically +generated strings (info:/cvs/Keyword substitution). +All of them follow the pattern "$KEYWORD generated text$". We now need a +Line-Matching-Preprocessor-Command that removes only the generated text: +

+   sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
+
+The "\|" separates the possible keywords. You might want to modify this list +according to your needs. +The "\" before the "$" is necessary because otherwise the "$" matches the end of the line. +

+While experimenting with sed you might come to understand and even like +these regular expressions. They are useful because there are many other programs that also +support similar things. +

Ignoring Numbers

+Ignoring numbers actually is a built-in option. But as another example, this is how +it would look as a Line-Matching-Preprocessor-command. +

+   sed 's/[0123456789.-]//g'
+
+Any character within '[' and ']' is a match and will be replaced with nothing. +

Ignoring Certain Columns

+Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are +other columns you want to preserve for analysis. In the following example the first five columns (characters) are +ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved. +

+   sed 's/.....\(..........\).....\(.*\)/\1\2/'
+
+Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first +and second pair of "\(" and "\)" denoting the text to be preserved. +

Combining Several Substitutions

+Sometimes you want to apply several substitutions at once. You can then use the +semicolon ';' to separate these from each other. Example: +

+   echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/'
+   -> OBROKODOBRO
+
+

Using perl instead of sed

+Instead of sed you might want to use something else like +perl. +

+   perl -p -e 's/REGEXP/REPLACEMENT/FLAGS'
+
+But some details are different in perl. Note that where +sed needed "\(" and "\)" perl +requires the simpler "(" and ")" without preceding '\'. Example: +
+   sed 's/\(.*\)/\U\1/'
+   perl -p -e 's/(.*)/\U\1/'
+
+

Order Of Preprocessor Execution

+The data is piped through all internal and external preprocessors in the +following order: +

  • Normal preprocessor,

  • Line-Matching-Preprocessor,

  • Ignore case (conversion to uppercase),

  • Detection of C/C++ comments,

  • Ignore numbers,

  • Ignore white space

+The data after the normal preprocessor will be preserved for display and merging. The +other operations only modify the data that the line-matching-diff-algorithm sees. +

+In the rare cases where you use a normal preprocessor note that +the line-matching-preprocessor sees the output of the normal preprocessor as input. +

Warning

+The preprocessor-commands are often very useful, but as with any option that modifies +your texts or hides away certain differences automatically, you might accidentally overlook +certain differences and in the worst case destroy important data. +

+For this reason during a merge if a normal preprocessor-command is being used KDiff3 +will tell you so and ask you if it should be disabled or not. +But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until +all conflicts are solved. If you disabled "Show White Space" then the differences that +were removed with the Line-Matching-Preprocessor-command will also be invisible. If the +Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable +"Show White Space". If you don't wan't to merge these less important differences manually +you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/printing.html b/doc/en/printing.html new file mode 100644 index 0000000..bca62f3 --- /dev/null +++ b/doc/en/printing.html @@ -0,0 +1,20 @@ +Printing
Printing

Printing

+ KDiff3 supports printing for textfile differences. The "Print..."-command (Ctrl-P) + in the File-menu opens a dialog that allows you to select the printer and to adjust + other options. +

+ There are several possibilities to adjust the range. Due to different printing + dialogs on different operating systems, the method to achieve certain range selections varies. +

All:

Print everything.

Current:

Print a page starting at the first visible line in the window. + (On systems without this option this can be achived by specifying page number 10000 for printing.)

Selection:

+ Before choosing to print select text with the mouse (like for copy and paste) + in one of the diff input windows to define the start and end line. If no text + in one of the diff input windows was selected, then this won't be an available + choice. (On systems without this option this can be achived by specifying page + number 9999 for printing.)

Range:

Specify the first and last page. +

+ Other important options for printing will be taken from the normal options: +

  • Font, font size

  • Show line numbers

  • Word wrap

  • Colors

  • etc.

+ Landscape formatting is also recommended for printing. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/requirements.html b/doc/en/requirements.html new file mode 100644 index 0000000..983137c --- /dev/null +++ b/doc/en/requirements.html @@ -0,0 +1,10 @@ +Requirements
Requirements

Requirements

+ In order to successfully use all features of KDiff3, you need KDE >3.1. +

+ For information about how to run KDiff3 on other platforms without KDE please see the + homepage. +

+You can find a list of changes at http://kdiff3.sourceforge.net/ChangeLog +or in the "ChangeLog"-file of the source package. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/saving.html b/doc/en/saving.html new file mode 100644 index 0000000..74d24e3 --- /dev/null +++ b/doc/en/saving.html @@ -0,0 +1,16 @@ +Saving
Saving

Saving

+ Saving will only be allowed, when all conflicts were solved. If the file + already exists and the "Backup files"-option is enabled then the existing + file will be renamed with an ".orig"-extension, but if such a file exists + it will be deleted. When you exit or start another diff-analysis and data + wasn't saved yet, then KDiff3 will ask if you want to save, cancel or proceed + without saving. (KDiff3 does not catch any signals. So if you "kill" KDiff3 + then your data will be lost.) +

+ Line endings are saved according to the normal method on the underlying + operating system. For Unices each line ends with an linefeed-character "\n", + while for Win32-based systems each line ends with a carriage-return + a linefeed + "\r\n". KDiff3 does not preserve the line-endings of the input files, which + also means that you shouldn't use KDiff3 with binary files. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/screenshot_diff.png b/doc/en/screenshot_diff.png new file mode 100644 index 0000000..d2865d5 Binary files /dev/null and b/doc/en/screenshot_diff.png differ diff --git a/doc/en/screenshot_merge.png b/doc/en/screenshot_merge.png new file mode 100644 index 0000000..1eb935b Binary files /dev/null and b/doc/en/screenshot_merge.png differ diff --git a/doc/en/screenshots.html b/doc/en/screenshots.html new file mode 100644 index 0000000..badb664 --- /dev/null +++ b/doc/en/screenshots.html @@ -0,0 +1,15 @@ +Screenshots and Features
Screenshots and Features

Screenshots and Features

This screenshot shows the difference between two text files

(Using an early version of KDiff3):



+ 3-way-merging is fully supported. This is useful if two people change code independently. + The original file (the base) is used to help KDiff3 to automatically select the correct + changes. + The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. + You can even edit the output. + This screenshot shows three input files being merged: +

+



+

KDiff3 also helps you to compare and merge complete directories. +This screenshot shows KDiff3 during a directory merge: +

+



+



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/selections.html b/doc/en/selections.html new file mode 100644 index 0000000..32cd75e --- /dev/null +++ b/doc/en/selections.html @@ -0,0 +1,34 @@ +Select, Copy And Paste
Select, Copy And Paste

Select, Copy And Paste

+ The input windows don't show a cursor, so selections must be made + with the mouse by clicking with the left mouse button at the start, holding + down the mousebutton and moving to the end, where you release the mouse + button again. You can also select a word by double clicking it. In the merge + output editor you can also select via the keyboard by holding the "shift"-button + and navigation with the cursor keys. +

+ If the selection exceeds the visible range you can move the mouse over the + window borders which causes KDiff3 to scroll in that direction. +

+ For very large selections you can also use the navigation keys while holding down + the mouse. E.g. use page up and page down to quickly go to a certain position. At the + end position release the mouse button. +

+ In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A). +

+ To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert). + But there exists an option "Auto Copy Selection". If this is enabled, + then whatever you select is copied immediately and you don't need to explicitely + copy. But pay attention when using this because the contents of the clipboard + might then be destroyed accidentally. +

+ "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the + selected text. +

+ "Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the + cursorposition or over the current selection. + If you paste to either diff input window the contents of the clipboard will + be shown in that window and the comparison will restart immediately. This is + useful if you want to quickly grab a piece of text from somewhere and + compare it with something else without first creating files. +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/startingdirmerge.html b/doc/en/startingdirmerge.html new file mode 100644 index 0000000..c737748 --- /dev/null +++ b/doc/en/startingdirmerge.html @@ -0,0 +1,22 @@ +Starting Directory Comparison Or Merge
Starting Directory Comparison Or Merge

Starting Directory Comparison Or Merge

+ This is very similar to the single file merge and comparison. You just + have to specify directories on the command line or in the file-open + dialog. +

Compare/Merge two directories:

+   kdiff3 dir1 dir2
+   kdiff3 dir1 dir2 -o destdir
+

+ If no destination directory is specified, then KDiff3 will use dir2. +

Compare/Merge three directories:

+   kdiff3 dir1 dir2 dir3
+   kdiff3 dir1 dir2 dir3 -o destdir
+

+ When three directories are merged then dir1 + is used as the base for the merge. + If no destination directory is specified, then KDiff3 will use dir3 + as the destination directory for the merge. +

+ Note that only the comparison starts automatically, not the merge. For this you first must + select a menu entry or the key F7. (More details later.) +



Would you like to make a comment or contribute an update to this page?
+ Send feedback to the KDE Docs Team

\ No newline at end of file diff --git a/doc/en/triple_diff.png b/doc/en/triple_diff.png new file mode 100644 index 0000000..c635d14 Binary files /dev/null and b/doc/en/triple_diff.png differ diff --git a/doc/en/white_space.png b/doc/en/white_space.png new file mode 100644 index 0000000..e40a1c7 Binary files /dev/null and b/doc/en/white_space.png differ -- cgit v1.2.1