# HG changeset patch # User joachim99 # Date 1147637346 0 # Node ID f7dad0aa6146a3e0838a44dddc1fdb5548f99d14 # Parent 2bb0f4dc64c0f8fb6485422c2f6fc0ff21b8d0e6 KDiff3-0.9.90-Qt4 diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/ChangeLog --- a/kdiff3/ChangeLog Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/ChangeLog Sun May 14 20:09:06 2006 +0000 @@ -1,3 +1,14 @@ +Version 0.9.90 - 2006/05/14 +=========================== +- Fixed KIO-problems of type "File exists" with tempfiles (introduced in 0.9.89) +- Fix for manual alignment with 3 files which caused crash (new feature in 0.9.89) +- Fix for Alt-Left caused crash for leftmost window on windows (due to changed compiler) +- Use of WResizeNoErase|WRepaintNoErase instead of WNoAutoErase (fix for compiler error with Qt3.1) +- Removed #include which is (currently) unneeded and required extra dependencies. +- Removed "Save/Load Directory Merge State ..." in directory menu. (These aren't working yet.) +- Fixed crash when used as Diff-part with KDevelop. +- Preserve executable bit when overwriting an existing file. + Version 0.9.89 - 2006/04/09 =========================== New features: diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/README --- a/kdiff3/README Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/README Sun May 14 20:09:06 2006 +0000 @@ -3,7 +3,7 @@ Author: Joachim Eibl (joachim.eibl at gmx.de) Copyright: (C) 2002-2006 by Joachim Eibl -KDiff3-Version: 0.9.89 +KDiff3-Version: 0.9.90-Qt4 KDiff3 is a program that @@ -36,148 +36,72 @@ For details see file "COPYING". -Exception from the GPL: - As a special exception, the copyright holder Joachim Eibl gives permission - to link this program with the Qt-library (commercial or non-commercial edition) - from Trolltech (www.trolltech.com), and he permits to distribute the resulting - executable, without including the source code for the Qt-library in the - source distribution. - Requirements & Installation: - Version 0.9.89 provides special support for KDE3, but it can also be - built without KDE3 if the Qt-libraries are available. - (I also test and use the program under Windows.) + The version 0.9.90-Qt4 requires Qt 4.x.y (from www.trolltech.com) for compilation. + (Qt-version >= 4.1.2 is recommended.) You always need - - kdiff3-0.9.89.tar.gz + - kdiff3-0.9.90-Qt4.tar.gz - For building the KDE3-version - - KDE>=3.1 and QT>=3.1-libraries. (QT>=3.2 is recommended) - - gcc, g++ with version >=3.2 + - for Un*x: gcc, g++ with version >=3.4.2 + Qt-X11-libraries - For building the Qt-only-version - - QT-libraries (version >=3.1.0). - (www.trolltech.com) - - for Un*x: gcc, g++ with version >=3.2 - - for Windows: VC6 / VC7.1 + - for Windows: Qt-win-libs + If you have the Qt4 commercial edition, then compile with Visual Studio. + If you use the Qt4 open source edition, then you'll need MinGW. + I verified that compilation and debugging works with these packages (probably newer ones will also work): + - gcc-core-3.4.2-20040916-1.tar.gz + - binutils-2.15.91-20040904-1.tar.gz + - gcc-g++-3.4.2-20040916-1.tar.gz + - mingw-runtime-3.9.tar.gz + - mingw32-make-3.80.0-3.tar.gz + - w32api-3.6.tar.gz (see also the note below) + - gdb-5.2.1-1.exe (for debugging) + + (Note: At the time of writing this README, the MinGW-package that was part + of qt-win-opensource-4.1.2-mingw.exe lacked the latest w32api needed for + KDiff3-compilation. You will need to unpack w32api-3.6.tar.gz or newer + from www.mingw.org into your MinGW-directory.) - On some distributions it will be necessary to install developer - packages (RPMs) that contain include files for compilation: - - xorg-x11-devel (or x11-devel) - - qt-devel - - kdelibs-devel + - for Mac: gcc, g++ with version >=3.4.2 + Qt-Mac-libraries -Installation for KDE3: - - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). - If it doesn't contain the correct path, type - export QTDIR=your_path_to_qt (e.g. /usr/lib/qt3) - - cd into the directory kdiff3-0.9.89 and type - - ./configure --prefix=/opt/kde3 (your KDE3 directory here) - - (make clean) (Required if you already compiled once.) - - make (Run compilation) - - make install (You must have root-rights for this step.) - For details also see the generic instructions in file "INSTALL". +Note for KDE-users: + The version 0.9.90-Qt4 doesn't provide support for KDE-3.x + because KDE-3.x.y requires Qt3. + If you need KDE-specific features like KIO-support stick to the + normal version 0.9.90. - If some icons are not visible or don't seem right, probably the prefix - was wrong. Check where your KDE3 installation is located and - use that directory with the prefix-option of configure. +Build-instructions (Unix or Mac): + - Make sure your shell-variable QTDIR is correct and that + your path contains the Qt4-bin-directory. + - cd into the directory kdiff3-0.9.90-Qt4/src and type + - qmake kdiff3.pro + - make (or "gmake" for GNU-Make) - This command should tell you: kde-config --prefix +Build-instructions (Windows): + - Run your qtvars.bat in the Qt4-bin directory. + (This should set your QTDIR, QMAKESPEC and PATH-environment-variables.) + - cd into the directory kdiff3-0.9.90-Qt4/src and type + - qmake kdiff3.pro + - make (which calls either "mingw32-make" or "nmake") - For SuSE and most distributions the prefix usually is /opt/kde3. - For Redhat/Fedora and Mandrake the prefix usually is /usr. - For a local installation, that doesn't need root rights try - - ./configure --prefix=$KDEHOME ($KDEHOME probably is the same as $HOME/.kde) - - make - - make install (Installs everything in $KDEHOME. No root rights required.) - - Run $KDEHOME/bin/kdiff3. ($KDEHOME/bin is probably not in your path.) - Warning: If a local installation and a global installation exist, the local - menu, toolbar, help etc. will be used, even if you start the global - executable. To avoid confusion, better remove the local version then. - (rm -R `find $KDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`) - - On Fedora-64-bit systems the following configure-line was reported to work: - ./configure --prefix=`kde-config --prefix` --enable-libsuffix=64 --with-qt-libraries=/usr/lib64/qt-3.3/lib/ - Both --enable-libsuffix=64 and -with-qt-libraries=/usr/lib64/qt-3.3/lib/ are needed; - without the first one it fails to find the KDE libraries, - and without the second one it fails to find libqt-mt - (strangely enough: libqt-mt is in /usr/lib64/qt-3.3/lib, - and "configure" tries /usr/lib64/qt-3.3/lib64) - If your qt-libraries are elsewhere please adapt the path accordingly. - - Some secondary dependencies aren't correctly discovered by configure. - If e.g the a linker error appears telling you something like - "Can't find -lacl" this probably means that you have to install - libacl-devel-*.rpm etc. - - If you run an older version of KDE and the make-process fails in the - doc- or po-directory, cd to the src-directory and run "make" there. Also run - "make install" there. This hopefully will create a working kdiff3-binary, - although without doc and language support. - -Upgrading KDiff3 for KDE: - If you already installed an older version or KDiff3 and you have the - impression, that the new version doesn't work as described, you should try to - remove all files belonging to KDiff3 before reinstalling. - Try this search command to locate KDiff3-related files: - find $HOME/.kde /usr /opt -iname "*kdiff3*" - (Will take a few minutes.) - - - -Installation for the Qt-only-platforms for Un*x: - (for Qt >=3.1.0) - - Make sure your shell-variable QTDIR is correct. (echo $QTDIR). - If it doesn't contain the correct path, type - export QTDIR=your_path_to_qt (e.g. /usr/lib/qt) - - cd into the directory kdiff3-0.9.89/src and type - - make -f Makefile.qt - - make -f Makefile.qt install (You must have root-rights for this step.) - (copies the files into /usr/local/bin and /usr/local/share/doc/kdiff3) - - Note: The file kdiff3.pro was used to generate the Makefile.qt: - qmake kdiff3.pro -o Makefile.qt - If you want to build the Qt-only version _and_ the KDE-version, do this - in separate directories, otherwise there will be errors. - -Build for Windows: - Use qmake and kdiff3.pro to generate - an appropriate Makefile. - qmake kdiff3.pro -o Makefile - - -Building Kdiff3 for Mac OSX 10.3.8 (by Mark Teel) --------------------------------------------------------- - 1) Install Qt/Mac with thread support and static libraries. - 2) cd .../kdiff3-0.9.89 - 3) Create a makefile for kdiff3 by executing: - qmake src/kdiff3.pro -o Makefile.qt - 4) Edit Makefile.qt and add the definition "KDIFF3" to the following two lines: - CFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... - CXXFLAGS = -pipe -Wall -W -Os -DKDIFF3 -DQT_NO_DEBUG ... - 5) Edit Makefile.qt and change the include path like so: - (old) INCPATH = -I/Library/qt3/mkspecs/default -Isrc ... - (new) INCPATH = -I/Library/qt3/mkspecs/macx-g++ -Isrc ... - 6) KDiff3-0.9.88-specific: Edit src/kdiff3.cpp line 290 like this: - statusBar()->setSizeGripEnabled(true); - 7) KDiff3-0.9.88-specific: (not necessary for 0.9.89 or later) - Edit /usr/include/mach/ppc/processor_info.h and replace all instances of - "unsigned int word" found in the four register unions (on lines 44, 65, - 74, 82) as follows: - (old) - unsigned int word; - (new) - #if defined(KDIFF3) - unsigned word; - #else - unsigned int word; - #endif - 8) Execute: - make -f Makefile.qt - 9) After the build completes copy kdiff3 from the kdiff3-0.9.89 directory to - /Applications - +Debugging with MinGW under Windows: +- cd into the directory kdiff3-0.9.90-Qt4/src +- edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console" + (this is necessary so that gdb can send a break signal to the running program) +- make debug (create a debuggable executable) +- gdb debug\kdiff3.exe +- At the "(gdb)"-prompt type "run" and enter to start. +- While the program runs you can't set breakpoints, first interrupt it with Ctrl-C. +- Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit) + Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work. +- I've tested graphical gdb-frontends too: + 1. Insight (also from mingw.org) worked until I wanted to interrupt the program for setting breakpoints. + 2. Dev-Cpp: The debugger said that the app crashed before even launching it. + Result: For Windows I recommend gdb on the console. Please tell me when things have improved! Start from commandline: - Comparing 2 files: kdiff3 file1 file2 diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/TODO --- a/kdiff3/TODO Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/TODO Sun May 14 20:09:06 2006 +0000 @@ -3,6 +3,8 @@ TODO ==== +- Only show different lines. + - ftp: Abbruch beim Einlesen von Verzeichnis stoppt nicht vollständig - Projekt-Verwaltung: Die ganze Config-Datei (=Projektdatei) an einen benutzerdefinierten Ort zu legen. (Keine Angabe->Default) @@ -36,12 +38,13 @@ - Overview-option to show only remaining conflicts. -- Colors for disabled and enabled arrow are very similar +- Overview bar for merge-window and for directory-window. + - ??? The gutters (kdiff3 have 2 "gutters") fonts and background-foreground colors sholud be configured other than the "general" foreground-background colors. Otherwise they are confused with the main dialog. - Try to autodetect the line-end-style -- Ignore cvs-keywords like $Revision$ +- Ignore cvs-keywords like $Revision: x.y$ - Undo function in the merge-editor. - More viewing options for directory widget. @@ -58,8 +61,8 @@ - Optionally show size/date for A/B/C - Choose what to see (all or only different items) - If only different items are visible: copy the others nevertheless to destdir. - - Warnung wenn Datum in B oder C �ter als A ist. - - Zielverzeichnis nachtr�lich �derbar + - Warnung wenn Datum in B oder C älter als A ist. + - Zielverzeichnis nachträglich änderbar - Bei Kopie von Remote nach lokal: Auf jeden Fall das modification Datum setzen. - Ctrl-Space doesn't work when a file comparison takes place. - Option to allow case-insensitive filename-matching. diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/doc/README --- a/kdiff3/doc/README Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/doc/README Sun May 14 20:09:06 2006 +0000 @@ -64,7 +64,8 @@ Command to retrieve other translations from cvs: cvs co kde-i18n/subdirs -for i in `cat kde-i18n/subdirs`; do cvs co kde-i18n/$i/docs/kdeextragear-1/kdiff3/index.docbook; done +#for i in `cat kde-i18n/subdirs`; do cvs co kde-i18n/$i/docs/kdeextragear-1/kdiff3/index.docbook; done +for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook; done If a new translation is available, - create a new directory, diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/doc/da/index.docbook --- a/kdiff3/doc/da/index.docbook Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/doc/da/index.docbook Sun May 14 20:09:06 2006 +0000 @@ -1,10 +1,10 @@ -KDiff3"> - + ]> @@ -31,10 +31,9 @@ +&erik.kjaer.pedersen.role; -&erik.kjaer.pedersen.role; - 2002-2006 @@ -55,15 +54,13 @@ Do NOT change these in the translation. --> 2006-03-12 +>2006-04-09 0.9.89 -&kdiff3; er et værktøj til sammenligning og sammenfletning af filer og mapper, som Dette dokument beskriver Kdiff3 version 0.9.98. +>Dette dokument beskriver &kdiff3; version 0.9.98. - - 2002-2006 Joachim Eibl @@ -45,12 +44,11 @@ (V.MM.LL), it could be used by automation scripts. Do NOT change these in the translation. --> -2006-04-09 -0.9.89 +2006-05-14 +0.9.90 - &kdiff3; is a file and directory diff and merge tool which @@ -65,7 +63,7 @@ supports version control keyword and history merging. - This document describes KDiff3-version 0.9.89. + This document describes &kdiff3;-version 0.9.89. @@ -101,9 +99,9 @@ Introduction Yet Another Diff Frontend? -Several graphical diff tools exist. Why choose KDiff3? Let me say, why I wrote it. +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 +&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 @@ -127,7 +125,7 @@ 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! +I hope &kdiff3; works for you too. Have fun! Joachim Eibl (2003) @@ -135,14 +133,14 @@ Screenshots and Features This screenshot shows the difference between two text files -(Using an early version of KDiff3): +(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 + 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. @@ -153,8 +151,8 @@ -KDiff3 also helps you to compare and merge complete directories. -This screenshot shows KDiff3 during a directory merge: +&kdiff3; also helps you to compare and merge complete directories. +This screenshot shows &kdiff3; during a directory merge: @@ -164,7 +162,7 @@ More Features Line-By-Line And Char-By-Char Diff-Viewer -By using the possiblities of a graphical color display KDiff3 shows +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. @@ -198,7 +196,7 @@ Comfortable Merge Of Two Or Three Input Files - KDiff3 can be used to merge two or three input files and automatically + &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. @@ -311,15 +309,15 @@ --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. +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 +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. +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.) @@ -327,7 +325,7 @@ 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. + 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. @@ -352,7 +350,7 @@ 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 + 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 @@ -366,7 +364,7 @@ Paste and Drop Input - Sometimes you want to compare parts of a text that is not an own file. KDiff3 also + 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". @@ -378,7 +376,7 @@ 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 can't drag anything from KDiff3. Only dropping in the diff input + 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 @@ -435,12 +433,12 @@ 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. + 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. + (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. @@ -488,7 +486,7 @@ "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 menu bar contains three input selector buttons + 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 @@ -498,7 +496,7 @@ 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 + 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. @@ -521,30 +519,27 @@ 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 whitespace conflicts. If you want to decide every + 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 + 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 whitespace conflicts and + 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 whitespace too. + 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$ -"$Header$", "$Author$", "Revision 1.5 2006/04/10 08:33:34 joachim99 -"$Header$", "$Author$", "KDiff3 0.9.89 -"$Header$", "$Author$", "" etc.) During the +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$". Since this line will +"$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 +&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 @@ -556,16 +551,10 @@ 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$ -Usually the version control history begins with a line containing the keyword "Revision 1.5 2006/04/10 08:33:34 joachim99 -Usually the version control history begins with a line containing the keyword "KDiff3 0.9.89 -Usually the version control history begins with a line containing the keyword "". +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$ -that came before the "Revision 1.5 2006/04/10 08:33:34 joachim99 -that came before the "KDiff3 0.9.89 -that came before the ""-keyword. If the same "leading comment" also appears in the following +&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" 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 @@ -575,17 +564,17 @@ 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 +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 +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. +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 +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. @@ -600,10 +589,7 @@ Example: Assume a history that looks like this: /************************************************************************** -** HISTORY: $Log$ -** HISTORY: Revision 1.5 2006/04/10 08:33:34 joachim99 -** HISTORY: KDiff3 0.9.89 -** HISTORY: +** 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. @@ -613,14 +599,11 @@ ** Fixed crash. **************************************************************************/ -The history start line matches the regular expression ".*\$Log.*\$.*". Then follow +The history start line matches the regular expression ".*\$Log.*\$.*". Then follow the history entries. -The line with the "$Log$ -The line with the "Revision 1.5 2006/04/10 08:33:34 joachim99 -The line with the "KDiff3 0.9.89 -The line with the ""-keyword begins with two "*" after which follows a space. -KDiff3 uses the first non-white-space string as "leading comment" and assumes that +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. @@ -635,7 +618,7 @@ 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 (in the example "**") will already be removed by KDiff3 +Note that the leading comment (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*". If you require a sorted history. Then the sortkey must be calculated. For this the @@ -649,7 +632,7 @@ 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 +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: @@ -684,7 +667,7 @@ 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" + 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". @@ -692,11 +675,11 @@ 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 + 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 + &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 @@ -715,7 +698,7 @@ 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. + 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 @@ -747,21 +730,21 @@ 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 + 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. + "\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 + 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) @@ -773,7 +756,7 @@ Printing - KDiff3 supports printing for textfile differences. The "Print..."-command (Ctrl-P) + &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. @@ -810,7 +793,7 @@ 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 ...) + and reloaded when you start it. (Menu Settings->Configure &kdiff3; ...) Font @@ -868,7 +851,7 @@ Diff and Merge Settings - When comparing files, KDiff3 first it tries to match lines that are equal + 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. @@ -877,7 +860,7 @@ 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 + 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 @@ -909,30 +892,27 @@ 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. + (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 ... + 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. + 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$ - Usually this line contains the "Revision 1.5 2006/04/10 08:33:34 joachim99 - Usually this line contains the "KDiff3 0.9.89 - Usually this line contains the ""-keyword. - Default value: ".*\$Log.*\$.*" + 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. + If left empty, then &kdiff3; assumes that empty lines separate history entries. See also Automatic Merge ... History merge sorting: @@ -947,7 +927,7 @@ 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. + If activated &kdiff3; runs the automatic history merging using aforementioned options when a merge is started. Test your regular expressions This button shows a dialog that allows you to improve and test the regular expressions above. @@ -956,7 +936,7 @@ 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 + 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. @@ -986,7 +966,7 @@ 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.) + 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. @@ -998,7 +978,7 @@ 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. + 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. @@ -1052,7 +1032,7 @@ Preprocessor Commands -KDiff3 supports two preprocessor options. +&kdiff3; supports two preprocessor options. Preprocessor-Command: @@ -1141,7 +1121,7 @@ sed 's/REGEXP/REPLACEMENT/FLAGS' -Before you use a new command within KDiff3, you should first test it in a console. +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/' @@ -1162,10 +1142,10 @@ -Examples For <command>sed</command>-Use In KDiff3 +Examples For <command>sed</command>-Use In &kdiff3; Ignoring Other Types Of Comments -Currently KDiff3 understands only C/C++ comments. Using the +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. @@ -1299,25 +1279,25 @@ 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 +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 Whitespace Conflicts" in the Merge-menu. +you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu. -Directory Comparison and Merge with KDiff3 +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 + purpose. For this &kdiff3; also lets you compare and merge complete directories recursively! Even though comparing and merging directories seems to be quite obvious, @@ -1328,7 +1308,7 @@ 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 + 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: @@ -1336,7 +1316,7 @@ 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 ... +So this is what this program can do for you: &kdiff3; ... ... reads and compares two or three directories recursively, @@ -1367,7 +1347,7 @@ kdiff3 dir1 dir2 -o destdir - If no destination directory is specified, then KDiff3 will use dir2. + If no destination directory is specified, then &kdiff3; will use dir2. @@ -1379,7 +1359,7 @@ 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 + If no destination directory is specified, then &kdiff3; will use dir3 as the destination directory for the merge. @@ -1396,7 +1376,7 @@ 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 + When the directory scan is complete then &kdiff3; will show a listbox with the results left, ... @@ -1470,7 +1450,7 @@ The Operation Column - After comparing the directories KDiff3 also evaluates a proposal for a + 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 @@ -1517,7 +1497,7 @@ Sync-mode is active if only two directories and no explicit destination - were specified and if the option "Synchronize directories" is active. KDiff3 + 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 ... @@ -1527,14 +1507,14 @@ ... 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.) + 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 + 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. @@ -1554,7 +1534,7 @@ 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 + &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.) @@ -1579,7 +1559,7 @@ 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. + Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting &kdiff3;. @@ -1610,7 +1590,7 @@ 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.) + (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. @@ -1638,26 +1618,26 @@ Otherwise select "Do it" to really start merging. - Then KDiff3 will run the specified operation for all items. If manual + 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. + do so. Then &kdiff3; will continue with the next item. - When KDiff3 encounters an error, it will tell you so and will show the + 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 + 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 + 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 + &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 @@ -1667,7 +1647,7 @@ Options for Comparing and Merging Directories - The KDiff3-preferences (menu "Settings"->"Configure KDiff3") has + The &kdiff3;-preferences (menu "Settings"->"Configure &kdiff3;") has a section called "Directory Merge" with these options: @@ -1691,7 +1671,7 @@ 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 filesystems files + 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. @@ -1796,7 +1776,7 @@ Networktransparency via KIO KIO-Slaves -KDE supports networktransparency via KIO-slaves. KDiff3 uses this +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. @@ -1852,7 +1832,7 @@ Networktransparency has one drawback: Not all ressources have the same cababilities. - Sometimes this is due to the filesystem of the server, sometimes due to the protocol. + Sometimes this is due to the file system of the server, sometimes due to the protocol. Here is a short list of restrictions: @@ -1880,13 +1860,13 @@ &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 +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 +&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 +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 @@ -1894,7 +1874,7 @@ 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 +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. @@ -1909,7 +1889,7 @@ - Why is it called "KDiff3"? + 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. @@ -1970,7 +1950,7 @@ When I removed some text, then suddenly "<No src line>" appeared - and can't be deleted. What does that mean and how can one remove this? + 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 @@ -1983,31 +1963,31 @@ - Why doesn't KDiff3 support syntax-highlighting? + Why doesn't &kdiff3; support syntax-highlighting? - KDiff3 already uses many colors for difference highlighting. More + &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? + 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 + 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. + &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 + 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. + &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 + 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.) @@ -2048,7 +2028,7 @@ Program copyright 2002-2006 Joachim Eibl joachim.eibl at gmx.de -Several cool ideas and bugreports came from colleagues and many people out in the World Wild Web. Thank you! +Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! @@ -2071,9 +2051,9 @@ How to obtain &kdiff3; -You can download the latest version of KDiff3 from its homepage http://kdiff3.sourceforge.net. +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. +&kdiff3; is also available for other platforms. See the homepage for details. @@ -2085,7 +2065,7 @@ 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 + For information about how to run &kdiff3; on other platforms without KDE please see the homepage. You can find a list of changes at O &kdiff3; é uma ferramenta de diferenças e junção das mesmas para ficheiros e pasta que: +>&kdiff3; is a file and directory diff and merge tool which: compara e junta dois ou três ficheiros de texto ou pastas de entrada, suporta o Unicode, o UTF-8 e outras codificações de ficheiros.supports Unicode, UTF-8 and other file encodings. @@ -150,7 +150,11 @@ >Existem várias ferramentas de detecção de diferenças. Porquê escolher o &kdiff3;? Deixe que o autor diga porque o escreveu. O &kdiff3; começou porque eu tinha de fazer uma junção difícil. A junção é necessária quando várias pessoas trabalham nos mesmos ficheiros de um projecto. Uma junção poderá de alguma forma ser automatizada, quando a ferramenta de junção não só tem os novos ficheiros modificados (chamados de 'ramificações' ou 'branches'), mas também o ficheiro original (chamado de 'base'). A ferramenta de junção irá escolher automaticamente as modificações que só foram feitas numa das ramificações. Quando vários contribuintes alteram as mesmas linhas, então a ferramenta de junção detecta um conflito que terá de ser resolvido manualmente. +>&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. "A junção foi então difícil porque um dos colaboradores alterou várias coisas e corrigiu a indentação em vários sítios. Outro também alterou bastante texto, o que resultou em vários conflitos de junção". @@ -189,16 +193,16 @@ > A junção por 3-vias é suportada por completo. Isto é útil se duas pessoas alterarem o código de forma independente. +>3-way-merging is fully supported. This is useful if two people change code independently. O ficheiro original (a base) é usado para ajudar o &kdiff3; a seleccionar automaticamente as alterações correctas. +>The original file (the base) is used to help &kdiff3; to automatically select the correct changes. O editor de junções, por baixo das janelas de diferenças, permite-lhe resolver os conflitos, enquanto lhe mostra o resultado que irá obter. +>The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. Poderá até editar o resultado. +>You can even edit the output. Esta imagem mostra três ficheiros de entrada a serem reunidos: +>This screenshot shows three input files being merged: @@ -313,13 +317,13 @@ > Procurar por sequências de texto em todas as janelas de texto. Procurar (Search for strings in all text windows. Find (&Ctrl;F) e Procurar o Próximo () and Find Next (F3).) Documentação da Comparação e Junção de Ficheiros +>Documentation of File Comparison And Merge <command >kdiff3</command > <replaceable ->ficheiro1 ficheiro2</replaceable +>file1 file2</replaceable > <option >-m</option> <command >kdiff3</command > <replaceable ->ficheiro1 ficheiro2</replaceable +>file1 file2</replaceable > <option >-o</option > <replaceable ->resultado</replaceable +>outputfile</replaceable ></screen> </sect2> @@ -412,17 +416,17 @@ ><command >kdiff3</command > <replaceable ->ficheiro1 ficheiro2 ficheiro3</replaceable +>file1 file2 file3</replaceable > <option >-m</option> <command >kdiff3</command > <replaceable ->ficheiro1 ficheiro2 ficheiro3</replaceable +>file1 file2 file3</replaceable > <option >-o</option > <replaceable ->resultado</replaceable +>outputfile</replaceable ></screen> <para >Repare que o <replaceable @@ -438,7 +442,7 @@ ><title >Caso especial: Ficheiros com o mesmo nome Se todos os ficheiros tiverem o mesmo nome mas estiverem em pastas diferentes, poderá reduzir o trabalho de escrita se indicar apenas o nome do ficheiro para o primeiro parâmetro. ⪚: +>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. ⪚: kdiff3kdiff3 pasta1 pasta2 +>dir1 dir2 kdiff3 pasta1 pasta2dir1 dir2 destino +>destdir kdiff3 pasta1 pasta2 pasta3 +>dir1 dir2 dir3 kdiff3 pasta1 pasta2 pasta3dir1 dir2 dir3 destinodestdir Para mais informações sobre as opções da linha de comandos use: +>For more information on command line options use: kdiff3 --help -Opções: - -m, --merge Junta o resultado. - -b, --base ficheiro Ficheiro de base explícito. Para compatibilidade com certas ferramentas. - -o, --output ficheiro Ficheiro de resultado. O -m é implícito. P.ex.: -o novo_ficheiro.txt - --out ficheiro O ficheiro de resultado, mais uma vez. (Para compatibilidade com certas ferramentas.) - --auto Sem interface gráfica se todos os conflitos são resolúveis. (Necessita do -o) - --qall Não resolve os conflitos automaticamente. (Para compatibilidade...) - --L1 nome1 Substituto visível do nome do ficheiro 1 (base). - --L2 nome2 Substituto visível do nome do ficheiro 2. - --L3 nome3 Substituto visível do nome do ficheiro 3. - -L, --fname nome Um substituto visível alternativo para o nome. Use este uma vez para cada ficheiro de entrada. - -u Não faz efeito. Para compatibilidade com certas ferramentas. +> +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. + -u Has no effect. For compatibility with certain tools. @@ -520,33 +527,33 @@ A janela de abertura permite editar os nomes dos ficheiros à mão, seleccionando um ficheiro através do navegador dos ficheiros (Ficheiro...) ou permite escolher os ficheiros recentes a partir das listas respectivas. Se abrir a janela de novo, então os nomes actuais irão nela permanecer. O terceiro ficheiro de entrada não é obrigatório. Se o item do 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 continuar em branco, então só será efectuada uma análise de diferenças com dois ficheiros. remains empty, then only a two file diff analysis will be done. Poderá também seleccionar uma pasta com o You can also select a directory via Dir.... Se for indicado como A uma pasta, então será iniciada uma comparação/junção de pastas. Se o A se referir a um ficheiro, mas o B, o C ou o destino corresponderem a pastas, então o &kdiff3; usa o nome do ficheiro em A nas pastas indicadas. . 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. Se a Junção estiver seleccionada, então o campo Resultado fica editável. Mas não é obrigatório indicar o nome do ficheiro do resultado imediatamente. Você poderá também adiar isto até à gravação. 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. O botão Configurar... abre a janela de opções, para que possa definir as opções antes de executar a análise. +>The Configure... button opens the options-dialog, so that you can set the options before running the analysis. Colar e Arrastar Dados Em algumas ocasiões, você poderá querer comparar partes de um texto que não está em nenhum ficheiro próprio. O &kdiff3; também lhe permite colar texto da área de transferência para a janela de introdução de diferenças que esteja em primeiro plano. A análise de diferenças irá ocorrer então. Na janela de abertura, você não irá necessitar de indicar ficheiros, fechando-a então com o CancelarSometimes 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. O utilizador também poderá usar o 'drag and drop': Arraste um ficheiro de um gestor de ficheiros ou o texto seleccionado de um editor e arrastá-lo para uma janela de introdução de diferenças. Qual é a ideia? Algumas vezes um ficheiro contém duas funções semelhantes, mas a verificação sobre as semelhanças entre elas é um grande esforço, se você precisar de criar primeiro dois ficheiros e depois carregá-los. Assim, poderá simplesmente copiar, colar e comparar as secções relevantes. De momento, você não poderá arrastar nada a partir do &kdiff3;. Só é permitido largar dados nas janelas de introdução de diferenças. Currently you can't drag anything from &kdiff3;. Only dropping in the diff input is supported. Alguns editores ainda interpretam à mesma o 'drag and drop' noutro programa como o Cortar (em vez do Copiar) e Colar. Os seus dados originais poderão deste modo perder-se. 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. Interpretar a Informação nas Janelas de Introdução +>Interpreting The Information In The Input Windows No cimo de cada janela de texto existe a sua linha de informação. As linhas de informação das janelas de introdução de diferenças contêm uma letra At the top of each text window is its info line. The info lines of the input windows contain a letter A, B ou or C, o nome do ficheiro e o número da primeira linha visível da janela. (Lembre-se que a janela , the filename and the line number of the first visible line in the window. (Note that window C é opcional). Cada linha de informação aparece com uma cor diferente. (Se as localizações forem demasiado extensas para caberem, poderá mover o cursor do rato para cima da linha de informação, de modo a que apareça uma dica com o nome completo). is optional.) Each info line appears in a different color. (If the paths are too long to fit, then you can move the mouse onto the info line and a tooltip will show the complete name.) As três janelas de entrada têm atribuídas as letras The three input windows are assigned the letters A, B e and C. O . A tem uma cor azul, o has color blue, B tem uma verde e o has green and C magenta. (Estas são as cores por omissão, mas podem ser alteradas no menu de configuração). has magenta. (These are the defaults, but can be changed in the Settings menu.) Quando é detectada uma diferença, então a cor mostra qual o ficheiro de entrada que é diferente. Quando os outros ficheiros de entrada diferem todos, então a cor usada para exprimir isto é a vermelha por omissão (Cor do conflito na Configuração). Este esquema de cores é particularmente útil no caso de três ficheiros de entrada, os quais serão vistos na próxima secção (JuntarWhen 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). À esquerda de cada texto está a coluna de resumo. Se ocorrerem diferenças numa linha, então a coluna do resumo mostra a cor respectiva. Para uma diferença por espaços em branco, o resumo fica axadrezado. Para as linguagens de programação em que os espaços em branco não são muito importantes, isto é útil para ver de um modo geral se existe algo de importante modificado. (No C/C++, os espaços em branco só são importantes dentro de cadeias de caracteres, comentários, pré-processador e em algumas outras situações esotéricas. 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.) A linha vertical que separa a coluna do resumo e o texto é interrompida (tracejada), se o ficheiro de entrada não tiver aí nenhuma linha. Quando a mudança de linha estiver activa, então esta linha vertical aparece ponteada para as linhas repartidas. Do lado direito, aparece uma coluna de resumo à esquerda da barra de posicionamento vertical. Ela mostra a coluna de resumo comprimida dos dados de On the right side a overview column is visible left of the vertical scrollbar. It shows the compressed summary column of input A. Todas as diferenças e conflitos ficam visíveis numa vista rápida. Quando só são usadas duas janelas de entrada, então todas as diferenças aparecem a vermelho, dado que cada diferença é também um conflito. Um rectângulo preto delimita a parte visível dos dados de entrada. Para as linhas de dados bastante compridas, quando o número de linhas de dados é maior do que a altura da coluna de resumo em pixels, então várias linhas de dados de entrada irão partilhar uma linha de resumo. Um conflito, neste caso, terá então uma prioridade elevada sobre as diferenças simples, que por sua vez têm prioridade sobre a ausência de alterações, como tal não se perde nenhuma diferença ou conflito neste caso. Se carregar nesta coluna de resumo, será mostrado o texto correspondente. +>. 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. @@ -628,73 +637,73 @@ A janela do editor do resultado da junção (por baixo das janelas de introdução de diferenças) também tem uma linha de informação no topo que mostra Resultado:, o nome do ficheiro e [Modificado] se você tiver alterado alguma coisa. Normalmente irá conter algum texto resultante das funcionalidades de junção automática, mas frequentemente irá conter também conflitos. 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. A gravação está desactivada até que todos os conflitos estejam resolvidos. (Use os botões para Ir para o Conflito por Resolver Anterior/Seguinte para descobrir os conflitos que faltam.) Saving is disabled until all conflicts are resolved. (Use the Go to prev/next unsolved conflicts buttons to find the remaining conflicts.) Com apenas dois ficheiros de entrada, todas as diferenças são também conflitos que necessitam de ser resolvidos manualmente. Com três ficheiros de entrada, o primeiro ficheiro é tratado como a base, enquanto que o segundo e o terceiro contêm as modificações. Quando, em qualquer linha, só o ficheiro B ou o C tiverem sido alterados mas não ambos, então será seleccionada a origem alterada. Só quando o B e o C alteraram as mesmas linhas é que a ferramenta detecta um conflito que deverá ser resolvido manualmente. Quando o B e o C são iguais mas não são o mesmo que o A, é seleccionado o C. A janela do editor do resultado da junção também tem uma coluna de resumo à esquerda. Mostra a letra do ficheiro de entrada para o qual foi seleccionada a linha ou nada, se todas as três origens são iguais nessa linha. Para os conflitos, ela mostra um ponto de interrogação 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 ? e a linha mostra <Conflito na Junção>, tudo a vermelho. Dado que a resolução de conflitos linha a linha poderá levar bastante tempo, as linhas são reunidas em grupos com as mesmas características de diferenças e conflitos. Mas os conflitos só com espaços em branco são separados dos outros conflitos para facilitar a junção dos ficheiros em que a indentação foi alterada em várias linhas. 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. Ao carregar na coluna do resumo com o &LMB; em ambas as janelas, o grupo que pertença a essa linha será seleccionado em todas as janelas e o início desse grupo será mostrado. (Isto poderá envolver um salto de posição automático para a janelas se o início do grupo não estiver visível). Este grupo fica então o grupo actual. Fica realçado com a Cor de fundo do intervalo actual e aparece uma barra preta do lado esquerdo do texto. When clicking into the summary column with the left mouse button in either window then the group belonging to that line will be selected in all windows and the beginning of that group will be shown. (This might involve an automatic position jump in the windows if the beginning of a group is not visible.) 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. Repare nos botões de selecção que contêm as letras Note the input selector buttons containing the letters A, B e and C na barra de botões por baixo do menu. Quando carregar num desses botões de selecção, as linhas desse ficheiro de entrada serão adicionadas ao fim do grupo seleccionado se esse grupo não contiver essa origem antes. Caso contrário, as linhas serão removidas. in the button bar below the menu bar. When clicking on either input selector button, the lines from that input will be added at the end of the selected group if that group didn't contain that source before. Otherwise the lines from that input will be removed. Para além disso, o utilizador poderá editar qualquer linha. A coluna de resumo irá mostrar um Besides, you can directly edit any line. The summary column will show m para cada linha modificada. for every line that was modified. Algumas das vezes, quando uma linha é removida tanto por junção automática como por edição e não ficam mais nenhumas linhas nesse grupo, então o texto <Sem linha de origem> irá aparecer nessa linha. Isto é apenas um substituto para o grupo, quando decidir mudar de ideias e seleccionar algum texto de origem de novo. Este texto não irá aparecer no ficheiro gravado ou em qualquer selecção que deseje copiar e colar. 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. O texto <Conflito na Junção> irá aparecer na área de transferência se copiar e colar algum texto que tenha uma dessas linhas. Mas tenha à mesma cuidado ao fazê-lo. The text <Merge Conflict> will appear in the clipboard if you copy and paste some text containing such a line. A junção normal irá começar por resolver os conflitos simples automaticamente. Mas o menu Juntar oferece algumas acções para outros usos comuns. Se você tiver de seleccionar a mesma origem para a maioria dos conflitos, então poderá escolher 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 ou or C em qualquer lado ou apenas para os conflitos que continuem ainda por resolver ou então para os conflitos de espaços em branco por resolver. Se quiser decidir cada um dos deltas por si próprio, poderá Passar os deltas para conflitos. Ou, se preferir voltar às escolhas automáticas do &kdiff3;, seleccione então a opção Resolver automaticamente os conflitos simples. Nesse caso, o &kdiff3; irá reiniciar a junção. Para as acções que alteram as suas modificações anteriores, o &kdiff3; pedir-lhe-á uma confirmação antes de prosseguir. +> everywhere, or only for the remaining unsolved conflicts, or for unsolved whitespace 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. Ao escolher uma das origens para os conflitos que não sejam de espaços em branco e as opções Ignorar os Números ou Ignorar os Comentários de C/C++ forem usadas, então as alterações nos números ou comentários serão tratadas como espaços em branco também. When choosing either source for unsolved whitespace conflicts and the options Ignore Numbers or Ignore C/C++ Comments are used then changes in numbers or comments will be treated like whitespace too. @@ -702,66 +711,74 @@ >Navegação e Edição Muita da navegação será feita com as barras de posicionamento e com o rato, mas você poderá também navegar com as teclas. Se carregar numa das janelas, então poderá usar as teclas de cursores, o 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 Arrow, Right Arrow, Up Arrow, Down Arrow, Page Up, o , Page Down, o , Home, o , End, o , &Ctrl;Home ou o , &Ctrl;End como iria usar noutros programas. A coluna de resumo ao lado da barra de posicionamento vertical dos ficheiros de entrada poderá também ser usada para navegar se carregar nela. 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. Poderá também usar a roda do rato para subir ou descer. You can also use a wheel mouse to scroll up and down. No editor do resultado da junção, poderá também usar as outras teclas para editar. Poderá alternar entre o modo de inserção ou sobreposição com a tecla 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. (Por omissão, está no modo de inserção). key. (Default is insert-mode.) Um 'click' com o &LMB; em qualquer coluna de resumo irá sincronizar todas as janelas para mostrar o início do mesmo grupo de linhas (tal como é explicado em JunçãoA &LMB; click into any summary column will synchronise all windows to show the beginning of the same group of lines (as explained in section "Merging"). A barra de botões também contém sete botões de navegação com os quais poderá saltar para a primeira/última/actual diferença, para a diferença seguinte/anterior (The button bar also contains seven navigation buttons with which you can jump to the current/first/last difference, to the next/previous difference (&Ctrl;BaixoDown Arrow/&Ctrl;CimaUp Arrow), para o conflito seguinte/anterior (), to the next/previous conflict (&Ctrl;Pg DownPage Down/&Ctrl;Pg UpPage Up) ou para o conflito seguinte/anterior por resolver. Repare que, para o &kdiff3;, um conflito que não foi resolvido automaticamente no início da junção irá permanecer como conflito, mesmo que resolvido. Daí a necessidade de distinguir os conflitos por resolver), 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. Existe também um botão Ir automaticamente para o próximo conflito por resolver após a selecção do código (Avanço Automático). Se activar esta opção, então sempre que seleccionar uma origem, o &kdiff3; irá saltar para o próximo conflito por resolver automaticamente. Isto poderá ajudar quando quiser sempre escolher apenas uma origem. Quando precisar de ambas as origens, ou se quiser editar depois de seleccionar, então provavelmente irá querer desligar esta opção. Antes de prosseguir para o próximo conflito por resolver, o &kdiff3; mostra-lhe o efeito da sua escolha durante algum tempo. Este atraso é ajustável na Configuração da Diferença & Junção: Poderá indicar o Atraso no avanço automático num valor entre 0 e 2 000 milisegundos. +>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, then &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. Está farto de carregar consecutivamente? Use um pequeno atraso de Avanço Automático e os atalhos Tired of many clicks? Use a small Auto-Advance-delay and the shortcuts &Ctrl;1&Ctrl;2 e and &Ctrl;3 para seleccionar os ficheiros A, B ou C para muitos dos conflitos. to select files A, B or C for many conflicts. @@ -781,77 +798,87 @@ >Seleccionar, Copiar e Colar As janelas de entrada não mostram nenhum cursor, como tal as selecções necessitam de ser feitas com o rato, ao carregar com o &LMB; no início, mantendo o botão do rato carregado e indo até ao fim, momento em que larga o botão do rato de novo. Poderá também seleccionar uma palavra se fizer duplo-click nela. No editor do resultado da junção poderá também seleccionar com o teclado se mantiver a tecla &Shift; carregada enquanto navega com as teclas de cursores. The input windows don't show a cursor, so selections must be made with the mouse by clicking with the &LMB; 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. Para copiar para a área de transferência, precisa de carregar no botão "Copiar" (To copy to the clipboard you must press the Copy button (&Ctrl;C ou or &Ctrl;Insert). Porém, existe uma opção para Copiar Automaticamente a Selecção. Se esta estiver activa, então tudo o que seleccionar será copiado imediatamente, sem que você tenha de copiar explicitamente. Todavia, preste atenção ao usar isto, dado que o conteúdo da área de transferência poderá ficar assim destruído por acidente. ). 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 explicitly copy. But pay attention when using this because the contents of the clipboard might then be destroyed accidentally. O CortarCut (&Ctrl;X ou o or &Shift;Delete) copia para a área de transferência e remove o texto seleccionado, enquanto o Colar) copies to the clipboard and deletes the selected text and Paste (&Ctrl;V ou or &Shift;Insert) insere o texto na área de transferência, na posição do cursor, ou sobre a selecção actual. +>) inserts the text in the clipboard at the cursor position or over the current selection. Gravar A gravação só será permitida quando todos os conflitos tiverem sido resolvidos. Se o ficheiro já existir e a opção de Salvaguarda dos ficheiros estiver activa, então o ficheiro existente verá o seu nome mudado de modo a ter uma extensão 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, mas se existir um destes ficheiros será removido. Quando você sair ou iniciar outra análise de diferenças e os dados não tiverem sido gravados ainda, então o &kdiff3; irá perguntar se você deseja gravar, cancelar ou prosseguir sem gravar. (O &kdiff3; não lida com nenhuns sinais ('signals') do sistema. Por isso, se fizer um 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 ao &kdiff3;, então os seus dados serão perdidos.) &kdiff3; then your data will be lost.) Os fins de linha são gravados de acordo com o método normal do sistema operativo subjacente. Para os UNIXes, cada linha terminada com um carácter de 'linefeed' Line endings are saved according to the normal method on the underlying operating system. For Unices each line ends with an linefeed-character \n, enquanto que nos sistemas baseados em Win32, cada linha termina com um 'carriage-return' + um 'linefeed' , while for &Windows; based systems each line ends with a carriage-return + a linefeed \r\n. O &kdiff3; não preserva os fins de linha dos ficheiros de entrada, o que também significa que você não deverá usar o &kdiff3; com ficheiros binários. +>. &kdiff3; does not preserve the line-endings of the input files, which also means that you shouldn't use &kdiff3; with binary files. Procurar Sequências de Texto Você poderá procurar por uma sequência de texto em qualquer janela de texto do &kdiff3;. O comando Procurar ... (You can search for a string in any text-window of &kdiff3;. The Find ... command (&Ctrl;F) no menu Editar abre uma janela que lhe permite indicar o texto a procurar. Poderá também seleccionar as janelas que deverão ser pesquisadas. A procura irá ter início sempre no topo do ficheiro. Use o comando Procurar o Próximo (F3) para prosseguir com a próxima ocorrência. Se optar por procurar em várias janelas, então a primeira janela será percorrida de alto a baixo antes de a procura começar na próxima janela a partir do topo de novo, &etc; +>) 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 occurence. 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; @@ -859,13 +886,13 @@ >Opções As opções e a lista de ficheiros recentes serão gravadas quando você sair do programa e serão carregadas de novo quando o iniciar. (Menu Options and the recent-file-list will be saved when you exit the program, and reloaded when you start it. (Menu ConfiguraçãoSettingsConfigurar o KDiff3...Configure KDiff3) +> ...) Tipo de Letra @@ -887,7 +914,7 @@ Cores +>Colors Nos sistemas com apenas 16 ou 256 cores, alguns dos tons acima descritos não estão disponíveis de forma pura. Nesses sistemas, o botão Predefinições irá escolher uma cor pura. +>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. Ao carregar em &Enter; ou When pressing &Enter; or Return a indentação da linha anterior é usada para uma nova linha. the indentation of the previous line is used for the new line. Utilizar a codificação local:Use locale encoding:Para mostrar os caracteres estrangeiros. Tente alterar isto se alguns dos caracteres da sua língua não forem mostrados correctamente. For displaying foreign characters. Try changing this if some characters of your language aren't displayed correctly. @@ -1057,7 +1084,7 @@ Configuração da Diferença e da Junção +>Diff & Merge Settings Ao comparar os ficheiros, o &kdiff3; tenta primeiro corresponder as linhas iguais em todos os ficheiros de entrada. Só durante este passo é que poderá ignorar os espaços em branco. O segundo passo compara cada uma das linhas. Neste passo, os espaços em branco não serão ignorados. Também durante a junção os espaços em branco não serão ignorados. @@ -1069,13 +1096,13 @@ >Alguns editores (em alguns sistemas) gravam os caracteres de 'carriage return' Some editors (on some systems) save carriage return \r e 'linefeed' and linefeed \n no fim da linha, enquanto que outros só irão gravar o 'linefeed' characters at the end of line, while others will only save the linefeed \n. Normalmente o &kdiff3; ignora o 'carriage return', mas aí os ficheiros que não tenham tamanhos iguais pareçam de facto iguais numa comparação lado-a-lado. Quando esta opção estiver activa, então os caracteres de 'carriage return' ficarão visíveis mas serão tratados como espaços em branco. Ela necessita estar desligada durante uma junção. Por omissão, está desligada.. 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. Por omissão está desligado. Os caracteres dos números (Default is off. Number characters (0-9-) serão ignorados na primeira parte da análise, na qual é feita a correspondência de linhas. No resultado, as diferenças serão mostradas de qualquer forma, mas serão tratadas como espaços em branco. ) 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. Por omissão está desligado. As diferenças de capitalização (como o Default is off. Case-differences of characters (like A vs. o vs. a) serão tratadas como diferenças de espaços em branco. ) will be treated like changes in white space. Resolve automaticamente todos os conflitos de espaços em branco, seleccionando o ficheiro indicado. (Por omissão, é com uma escolha manual). É útil se os espaços em branco não serão importantes em muitos dos ficheiros. Se precisar disto apenas ocasionalmente, é melhor usar o Escolher A/B/C nos Conflitos de Espaços em Branco Por Resolver no menu Junção. Lembre-se que, se activar o Ignorar os Números ou o Ignorar os Comentários de C/C++, então esta escolha automática também se aplica para os conflitos nos números ou nos comentários. 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. @@ -1211,11 +1238,11 @@ >Quando um ficheiro é gravado e já existe uma versão anterior, então a versão original irá mudar para um nome com uma extensão When a file is saved and an older version already exists, then the original version will be renamed with an .orig. Se já existir um ficheiro de cópia de segurança antigo com uma extensão extension. If an old backup file with .orig, então este será removido sem ficar nenhuma cópia de segurança. extension already exists then this will be deleted without backup. @@ -1232,7 +1259,7 @@ >Ajusta a língua da interface do utilizador. Se mudar esta opção não afectará o programa em execução. Terá de sair e reiniciar o &kdiff3; para que a língua seja alterada. (Esta opção não está disponível na versão para &kde; do &kdiff3;, porque a língua é ajustável na configuração global do &kde;). 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.) Algumas línguas são escritas da direita para a esquerda. Quando esta opção está activa, o &kdiff3; desenha o texto da direita para a esquerda nas janelas de diferenças dos ficheiros de entrada e na janela do resultado da junção. Repare que, se iniciar o &kdiff3; com a opção da linha de comandos , então toda a disposição será feita também da direita para a esquerda. (Esta é uma funcionalidade oferecida pelo &Qt;.) Esta documentação foi escrita a assumir que a Língua da direita-para-a-esquerda ou a disposição inversa estão desactivadas. Por isso, algumas das referências a esquerda ou direita deverão ser substituídas pela versão inversa, se usar estas opções. then all layouting will be done right to left too. (This is a feature provided by &Qt;.) This handbook 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. @@ -1311,7 +1338,7 @@ >Diversos Estas opções e acções estão disponíveis nos menus ou na barra de botões. +>These options and actions are available in menus or the buttonbar. Desligue isto para suprimir o realce das alterações apenas nos espaços em branco no texto ou nas colunas de vista geral. (Lembre-se que isto também se aplica às alterações nos números ou comentários se as opções Ignorar os números ou Ignorar os Comentários de C/C++ estiverem activas.)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.) Estas opções só estão disponíveis quando você compara três ficheiros. No modo normal, todas as diferenças são mostradas na coluna de resumo codificada a cores. Mas, em alguns casos, você está especialmente interessado nas diferenças entre apenas dois desses três ficheiros. Se seleccionar 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 ou or B vs. C na coluna de resumo irá aparecer uma segunda coluna com a informação necessária ao lado do resumo normal. overview will show a second overview column with the required information next to the normal overview. Em algumas vezes, você poderá usar melhor o espaço no ecrã para as linhas compridas. Esconda as janelas que não são importantes. (No menu Janelas.)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.) Define se as janelas de diferenças são mostradas uma ao lado da outra (a A à esquerda da B, que está à esquerda da C) ou uma por cima da outra (a A sobre a B, que está sobre a C). Isto também deverá ajudar para as linhas compridas (No menu Janelas). 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.) Às vezes, você está a ver os deltas e decide juntá-los. Sometimes you are viewing the deltas and decide to merge. O Juntar o ficheiro actual no menu Directoria também resulta se só comparar dois ficheiros. Um único 'click' começa a junção e usa o nome do último ficheiro de entrada como nome do ficheiro do resultado por omissão. (Quando isto for usado para reiniciar uma junção, então o nome do ficheiro do resultado será mantido.) 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.) @@ -1422,11 +1447,11 @@ >Configurar os Atalhos de Teclado De momento, só a versão para &kde; suporta os atalhos de teclado configuráveis pelo utilizador. (No menu Currently only the &kde; version supports user-configurable keyboard-shortcuts. (ConfiguraçãoSettingsConfigurar os Atalhos...)Configure Shortcuts...) @@ -1446,7 +1471,7 @@ >Quando for lido qualquer ficheiro, ele será encaminhado através deste comando externo. O resultado deste comando será visível em vez do ficheiro original. O utilizador poderá criar o seu próprio pré-processador que corresponda às suas necessidades específicas. Use isto para cortar partes desnecessárias do ficheiro ou para corrigir automaticamente a indentação, &etc;. 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;. perl encarregar-se-ão disso. Exemplo: Simples caso de teste: Considere o ficheiro Example: Simple testcase: Consider file a.txt (6 linhas): +> (6 lines): aa ba @@ -1480,9 +1505,9 @@ E o ficheiro And file b.txt (3 linhas): +> (3 lines): cg @@ -1490,7 +1515,7 @@ eg Sem um pré-processador, as seguintes linhas seriam colocadas umas a seguir às outras: +>Without a preprocessor the following lines would be placed next to each other: aa - cg @@ -1501,9 +1526,9 @@ fa Isto poderá não ser o desejado, dado que a primeira letra contém a informação realmente interessante. Para ajudar no algoritmo de correspondência, de modo a ignorar a segunda letra, pode ser usado um comando de pré-processamento de correspondência de linhas que substitua o 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 por um with a: @@ -1513,7 +1538,7 @@ > 's/g/a/' Com este comando, o resultado da comparação seria: +>With this command the result of the comparison would be: aa @@ -1524,7 +1549,7 @@ fa Internamente, o algoritmo de correspondência vê os ficheiros após ter corrido o pré-processador de correspondência de linhas, mas no ecrã, o ficheiro está inalterado. (O pré-processador normal iria mudar os dados também no ecrã.) +>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</command > Esta secção só introduz algumas funcionalidades muito básicas do This section only introduces some very basic features of sed. Para mais informações veja as páginas . For more information see info:/sed ou or http://www.gnu.org/software/sed/manual/html_mono/sed.html. Existe uma versão pré-compilada para o &Windows; em . A precompiled version for &Windows; can be found at http://unxutils.sourceforge.net. Repare no facto de que os exemplos seguintes assumem que o comando . Note that the following examples assume that the sed está numa pasta referida pela sua variável de ambiente command is in some directory in the PATH. Se não for este o caso, você terá de indicar a localização absoluta completa para o comando. Repare também que os seguintes exemplos usam a plica simples ( 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 (') que não irá funcionar para o &Windows;. No &Windows;, você deverá usar as aspas () which won't work for &Windows;. On &Windows; you should use the double quotation marks (") em alternativa. +>) instead. Neste contexto, só é usado o comando de substituição do In this context only the sed: +> substitute command is used: sed 's/EXP_REGREGEXP/SUBSTITUIÇÃOREPLACEMENT/OPÇÕESFLAGS' Antes de usar um comando novo dentro do &kdiff3;, deverá primeiro testá-lo numa consola. Aqui, o comando Before you use a new command within &kdiff3;, you should first test it in a console. Here the echo é útil. Exemplo: +>-command is useful. Example: echo abracadabra | abrakadabra | sed 's/a/o/' obracadabraobrakadabra Este exemplo mostra um comando muito simples do 'sed' que substitui a primeira ocorrência do This example shows a very simple sed-command that replaces the first occurance of a por um with o. Se quiser substituir todas as ocorrências, então irá necessitar da opção . If you want to replace all occurances then you need the g: +> flag: echo abracadabra | abrakadabra | sed 's/a/o/g' obrocodobroobrokodobro O símbolo The | é o comando de 'pipe' (tubo) que transfere o resultado do comando anterior para os dados de entrada do comando seguinte. Se quiser testar com um ficheiro maior, então poderá usar o 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 nos sistemas Unix ou o on Unix-like systems or type nos sistemas &Windows;. O on &Windows;-like systems. sed fará a substituição para cada linha. +> will do the substitution for each line. cat ficheirofilename |sed opçõesoptions @@ -1632,17 +1657,17 @@ >Ignorar Outros Tipos de Comentários De momento, o &kdiff3; só compreende comentários de C/C++. Se usar o Comando do Pré-Processador-de-Correspondência-de-Linhas, poderá também ignorar outros tipos de comentários, se os converter para comentários de C/C++. +>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. Para ignorar os comentários que começam por To ignore comments starting with #, poderia convertê-los para , you would like to convert them to //. Lembre-se que também terá de activar a opção Ignorar os Comentários de C/C++ para fazer efeito. Um Comando-de-Pré-Processador-de-Correspondência-de-Linhas seria: +>. Note that you also must enable the Ignore C/C++-Comments option to get an effect. An appropriate Line-Matching-Preprocessor-Command would be: Dado que para o Since for sed o carácter the / tem um significado especial, é necessário colocar o carácter character has a special meaning, it is necessary to place the \ antes de cada character before each / no texto de substituição. Algumas das vezes o in the replacement string. Sometimes the \ é necessário para adicionar ou remover um significado especial para certos caracteres. As plicas simples ( is required to add or remove a special meaning of certain characters. The single quotation marks (') antes e depois do comando de substituição são importantes, caso contrário a linha de comandos iria tentar interpretar alguns caracteres especiais como o ) before and after the substitution-command are important now, because otherwise the shell will try to interpret some special characters like #, o , $ ou o or \ antes de os passar para o before passing them to sed. Lembre-se que no &Windows; irá necessitar aqui das aspas (. Note that on &Windows; you will need the double quotation marks ("). O &Windows; substitui os outros caracteres como o ) here. &Windows; substitutes other characters like %, por isso você terá de fazer algumas experiências. +>, so you might have to experiment a little bit. Diff sem Distinguir Capitalização Use o seguinte Comando-de-Pré-Processador-de-Correspondência-de-Linhas para converter os dados de entrada para maiúsculas: +>Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: 's/\(.*\)/\U\1/' Aqui o Here the .* é uma expressão regular que corresponde a qualquer texto e, no seu contexto, irá corresponder a todos os caracteres da linha. O is a regular expression that matches any string and in this context matches all characters in the line. The \1 no texto de substituição refere-se ao texto correspondente ao primeiro par de in the replacement string refers to the matched text within the first pair of \( e and \). O . The \U converte o texto inserido para maiúsculas. +> converts the inserted text to uppercase. Ignorar as Palavras-Chave do Controlo de Versões O CVS e os outros sistemas de controlo de versões usam várias palavras-chave para inserir automaticamente sequências de texto geradas (Substituição de palavras-chave). Todas elas seguem o padrão "$PALAVRA-CHAVE texto gerado$". É necessário agora um Comando de Pré-Processador por Correspondência de Linha que remova apenas o texto gerado: +> 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\$/' O The \| separa as palavras-chave possíveis. Poderá querer modificar esta lista, de acordo com as suas necessidades. O separates the possible keywords. You might want to modify this list according to your needs. The \ antes do before the $ é necessário porque, caso contrário, o is necessary because otherwise the $ irá corresponder ao fim da linha. +> matches the end of the line. Ao experimentar com o sedIgnorar os Números A indiferença em relação aos números é de facto uma opção incorporada. Mas, como outro exemplo, seria assim como iria ficar como um comando do Pré-Processador da Correspondência de Linhas. +>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' Todos os caracteres dentro do Any character within [ e do and ] são uma correspondência que será substituída por nada. +> is a match and will be replaced with nothing. Ignorar Certas Colunas Em algumas ocasiões um determinado texto tem uma formatação demasiado restrita e contém colunas que deseja sempre ignorar, enquanto que existem outras colunas que deseje preservar para análise. No exemplo seguinte, as primeiras cinco colunas (caracteres) são ignoradas, as próximas dez são preservadas, depois as próximas cinco colunas serão ignoradas de novo e o resto da linha é preservada. +>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. 's/.....\(..........\).....\(.*\)/\1\2/' Cada ponto Each dot . corresponde a um único carácter. O matches any single character. The \1 e o and \2 no texto de substituição referem-se ao texto correspondente dentro do primeiro e segundo pares de in the replacement string refer to the matched text within the first and second pair of \( e and \), correspondendo ao texto a preservar. +> denoting the text to be preserved. Combinar Várias Substituições Em algumas situações você deseja aplicar várias substituições de uma vez. Poderá então usar o ponto-e-vírgula Sometimes you want to apply several substitutions at once. You can then use the semicolon ; para separar uma da outra. +> to separate these from each other. echo abracadabra | abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' OBROCODOBROOBROKODOBRO @@ -1805,39 +1834,39 @@ >sed Em vez do Instead of sed, poderá querer usar algo diferente, como o you might want to use something else like perl. perl -p -e 's/EXP_REGREGEXP/SUBSTITUIÇÃOREPLACEMENT/OPÇÕESFLAGS' Mas alguns detalhes são diferentes no But some details are different in perl. Lembre-se que, onde o . Note that where sed necessitava do needed \( e do and \), o perl necessita da versão mais simples requires the simpler ( e and ) sem o without preceding \ precedente. +>. Os comandos do pré-processador são normalmente muito úteis, mas como acontece com qualquer opção que modifica os seus textos ou esconde algumas diferenças automaticamente, você poderá saltar por cima de certas diferenças e, no pior dos casos, destruir dados importantes. Por esta razão, durante uma junção, se for usado um comando pré-processador normal, o &kdiff3; dizer-lhe-á isso e perguntar-lhe-á se deverá ser desactivado ou não. Mas não o irá avisar se estiver um Pré-Processador de Correspondência de Linhas activo. A junção não irá ficar completa até que todos os conflitos tenham sido resolvidos. Se tiver desactivado o Mostrar os Espaços em Branco, então as diferenças que foram removidas com o Pré-Processador de Correspondência de Linhas ficarão também invisíveis. Se o botão para Gravar continuar inactivo durante uma junção (devido a conflitos por resolver), verifique se activa o Mostrar os Espaços em Branco. Se não quiser juntar essas diferenças menos importantes poderá escolher a opção Escolher [A|B|C] nos Conflitos de Espaço em Branco por Resolver no menu Juntar. +>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 Whitespace Conflicts in the Merge menu. @@ -1916,7 +1945,7 @@ Normalmente, os programadores precisam de modificar vários ficheiros numa pasta para atingir os seus fins. Para isso, o &kdiff3; também lhe permite comparar e juntar várias pastas de forma recursiva! Ainda que a comparação e junção de pastas pareça ser bastante óbvia, existem vários detalhes que o utilizador deverá conhecer. O mais importante é, obviamente, o facto de que vários ficheiros poderão ser afectados por cada operação. Se não tiver cópias de segurança dos seus dados originais, então poderá ser bastante difícil ou mesmo impossível de voltar ao estado original. Por isso, antes de começar uma junção, certifique-se que os seus dados estão a salvo e que é possível voltar atrás. Se cria um pacote ou usa um sistema de controlo de versões é uma decisão sua, mas mesmo os programadores experientes e os integradores precisam do código antigo e do novo. E repare que até ao autor do &kdiff3; tenta fazer o seu melhor, mas não pode garantir que não existam erros. De acordo com a GPL da &GNU;, não existe NENHUMA GARANTIA de qualquer forma para este programa. Por isso, seja humilde e tenha sempre em mente: +>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:
... permite-lhe executar a operação seleccionada para todos os itens (tecla ... lets you run the selected operation for all items (key F7) ou para o item seleccionado (tecla ) or the selected item (key F6), ... permite-lhe continuar a junção depois de uma interacção manual com a tecla ... lets you continue the merge after manual interaction with key F7, ... cria opcionalmente cópias de segurança com a extensão ... optionally creates backups, with the .orig, extension, kdiff3 pasta1 pasta2 +>dir1 dir2 kdiff3 pasta1 pasta2dir1 dir2 pastadestdestdir kdiff3 pasta1 pasta2 pasta3 +>dir1 dir2 dir3 kdiff3 pasta1 pasta2 pasta3dir1 dir2 dir3 pastadestdestdir como pasta de destino para a junção. Repare que só a comparação é que começa automaticamente, não a junção. Para tal, terá de seleccionar primeiro um item do menu ou a tecla Note that only the comparison starts automatically, not the merge. For this you first must select a menu entry or the key F7. (Mais detalhes posteriormente.) +>. (More details later.) Informação Visível +>Visible Information Ao ler as pastas, aparece uma mensagem que o informa do progresso. Se você interromper a pesquisa das pastas, então só os ficheiros que tenham sido comparados até então serão listados. Cada ficheiro e pasta encontrado durante a pesquisa é aqui mostrado numa árvore. Você poderá seleccionar um item se carregar nele uma vez com o rato. As pastas estão fechadas por omissão. Você poderá expandi-las e fechá-las se carregar no The directories are collapsed by default. You can expand and collapse them by clicking on the +/- ou se fizer duplo-click no item ou ainda usando as teclas de cursores esquerda/direita. O menu Directoria também contém duas acções Fechar Todas as Sub-Directorias e Expandir Todas as Sub-Directorias, com as quais poderá fechar ou abrir todas as subpastas de uma vez. or by double-clicking the item or by using the Left Arrow or 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. Se fizer duplo-click num item de um ficheiro, então a comparação do ficheiro irá começar e irá aparecer a janela de diferenças do ficheiro. A imagem na coluna do nome reflecte o tio de ficheiro na primeira pasta (The image in the name column reflects the file type in the first directory (A). Poderá ser um dos seguintes: +>). It can be one of these: A Coluna de Operação Depois de comparar as patas, o &kdiff3; avalia também uma proposta para uma operação de junção. Esta é mostrada na coluna de Operação. O utilizador poderá modificar a operação se carregar na operação que deseja alterar. Irá aparecer um pequeno menu que lhe permite seleccionar uma operação para esse item (Poderá também seleccionar as operações mais necessárias através do teclado. O Ctrl+1/2/3/4/Del irá seleccionar o A/B/C/Juntar/Remover, respectivamente, se estiver disponível.) Esta operação será executada durante a junção. Depende do item e do modo de junção em que se encontra e de que operações estão disponíveis. O modo de junção é um dos seguintes +>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 Junção de três pastas (a Three directory-merge (A é tratada como a base mais antiga de ambas). is treated as older base of both). Modo de sincronização de duas pastas (activado com a opção Sincronizar as DirectoriasTwo directory-sync-mode (activate via option Synchronize Directories). @@ -2170,41 +2203,41 @@ todas as três pastas forem iguais: Copiar do Call three directories are equal: Copy from C o A e o C são iguais mas o B não: Copiar a partir do B (ou se o B não existir, remover o destino se existir)A and C are equal but B is not: Copy from B (or if B does not exist, delete the destination if exists) o A e o B são iguais mas o C não: Copiar a partir do C (ou se o C não existir, remover o destino se existir)A and B are equal but C is not: Copy from C (or if C does not exist, delete the destination if exists) o B e o C são iguais mas o A não: Copiar a partir do C (ou se o C não existir, remover o destino se existir)B and C are equal but A is not: Copy from C (or if C does not exist, delete the destination if exists) só o A existir: Remover o destino (se existir)only A exists: Delete the destination (if exists) só o B existir: Copiar a partir do Bonly B exists: Copy from B só o C existir: Copiar a partir do Conly C exists: Copy from C o A, o B e o C não são iguais: JuntarA, B and C are not equal: Merge o A, o B e o C não tiverem o mesmo tipo de ficheiro (⪚ o A é uma pasta e o B um ficheiro): Erro: Tipo de Ficheiros em Conflito. Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.A, B and C don't have the same file type (⪚ A is a directory, B is a file): Error: Conflicting File Types. While such items exist the directory merge cannot start. ambas as pastas forem iguais: Copiar do Bboth directories are equal: Copy from B o A existir, mas o B não: Copiar a partir do AA exists, but not B: Copy from A o B existir, mas o A não: Copiar a partir do BB exists, but not A: Copy from B o A e o B existirem mas não forem iguais: JuntarA and B exist but are not equal: Merge o A e o B não tiverem o mesmo tipo de ficheiro (⪚ o A é uma pasta e o B um ficheiro): Erro: Tipo de Ficheiros em Conflito. Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.A and B don't have the same file type (⪚ A is a directory, B is a file): Error: Conflicting File Types. While such items exist the directory merge cannot start. O modo de sincronização só está activo se forem indicadas duas pastas e não se não for indicado nenhum destino explícito, assim como a opção Sincronizar as directorias terá de estar activa. Nesse caso, o &kdiff3; irá seleccionar uma operação por omissão, de modo a que ambas as pastas fiquem iguais no fim. Se, para um item ... +>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 ambas as pastas forem iguais: Não será feito nada.both directories are equal: Nothing will be done. o A existir mas o B não: Copiar o A para o BA exists, but not B: Copy A to B o B existir mas o A não: Copiar o B para o AB exists, but not A: Copy B to A o A e o B existirem, mas não forem iguais: Juntar e guardar o resultado em ambas as pastas. (Para o utilizador, o nome do ficheiro gravado visível será o B, mas o KDiff3 irá copiar o B também para o 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.) o A e o B não tiverem o mesmo tipo de ficheiro (⪚ o A é uma pasta e o B um ficheiro): Erro: Tipo de Ficheiros em Conflito. Enquanto existirem itens nesta situação, a junção de pastas não poderá começar.A and B don't have the same file type (⪚ A is a directory, B is a file): Error: Conflicting File Types. While such items exist the directory merge cannot start. Quando duas pastas forem reunidas e a opção Copiar o mais recente em vez de juntar estiver seleccionada, então o KDiff3 irá olhar para as datas e irá optar por escolher o ficheiro mais recente. Se os ficheiros não forem iguais mas tiverem datas iguais, então a operação irá conter Erro: As datas são iguais mas os ficheiros não.. Enquanto esses itens existirem a junção de pastas não poderá começar. +>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. A Coluna de Estado Durante a junção, os ficheiros serão processados um a seguir ao outro. A coluna de estado irá mostrar Terminado para os itens em que a operação de junção foi bem sucedida e outros textos se algo ocorreu de inesperado. Quando se terminar uma junção, o utilizador deverá então fazer uma última verificação para confirmar se o estado de todos os itens é aceitável. +>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. Colunas de Estatísticas Quando o modo de comparação de ficheiros Análise Completa estiver activo nas opções, então o &kdiff3; irá mostrar colunas extra que contêm o número de conflitos não resolvidos, resolvidos, de espaços em branco e dos outros conflitos. (A coluna de resolvidos só irá aparecer ao comparar ou ao juntar três pastas.) +>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.) @@ -2292,17 +2325,17 @@ Fazer uma Junção +>Doing A Merge O utilizador tanto poderá reunir o item seleccionado de momento (ficheiro ou pasta) ou todos os itens. Quando tiver feito todas as suas opções de operação (em todas as subpastas também), aí então poderá iniciar a junção. Tenha em atenção que, se não tiver indicado explicitamente uma pasta de destino, então o destino será o Be aware that if you didn't specify a destination directory explicitely, then the destination will be C no modo de três pastas, o in three directory mode, B no modo de junção de duas pastas e no modo de sincronização será o in two directory merge mode, and in sync-mode it will be A e/ou o and/or B. Directorias Recursivas: Se estiver desligada, então os itens em todas as subpastas não serão tratados.Recursive Directories: If this is off, then items in subdirectories will not be found. PadrãoPattern/Anti-Padrão: Inclui/exclui os itens que correspondam ao padrãoAnti-Pattern: Include/exclude items that match Excluir os Ficheiros EscondidosExclude Hidden Files Listar apenas os Deltas: Os ficheiros que correspondam em todas as pastas não aparecem na árvore e, por isso, também não aparecem no destino.List only Deltas: Files that match in all directories don't appear in the tree, and hence also not in the destination. (Na versão actual, é necessário o próprio utilizador fazer uma nova pesquisa através do menu (In the current version, you must do a rescan via menu DirectoriaDirectoryAnalisar de NovoRescan, depois de alterar as opções que afectam a pesquisa da pasta.) yourself, after changing options affecting the directory scan.) Se estiver satisfeito até agora, o resto é simples. Para juntar todos os itens: Seleccione Iniciar/Continuar a Junção da Directoria no menu Directoria ou carregue em To merge all items: Select Start/Continue directory merge in the Directory menu or press F7 (que é o atalho). Para juntar apenas o item actual: Seleccione Executar a Operação no Item Actual ou carregue em (which is the shortcut). To merge only the current item: Select Run Operation For Current Item or press F6. Se, devido à existência de tipos de ficheiro em conflito, ainda permanecerem alguns itens com operações inválidas, então irá aparecer uma mensagem onde serão evidenciados esses itens, para que possa seleccionar uma operação válida para cada item. Se juntar todos os itens, irá aparecer uma janela que lhe apresenta as opções Fazê-loIf you merge all items a dialog will appear giving you the options Do it, Simulá-lo e CancelarSimulate it and Cancel. Seleccione Simulá-lo se quiser ver o que seria feito sobre o item sem aplicar de facto as modificações. Será apresentada uma lista descritiva com todas as operações.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. Caso contrário, seleccione Fazê-lo para iniciar de facto a junção.Otherwise select Do it to really start merging. ver a imagem grande). Quando tiver terminado um ficheiro, seleccione de novo Iniciar/continuar a junção da directoria ou a tecla When you have finished with a file, again select Start/Continue directory merge or the key F7. Se não tiver ainda gravado nada, irá aparecer uma janela a pedir-lhe isso. Aí, o &kdiff3; irá passar ao próximo item. . If you haven't saved yet, a dialog will ask you to do so. Then &kdiff3; will continue with the next item. Quando o &kdiff3; encontrar um erro, indicar-lhe-á tal facto e irá mostrar a informação descritiva do estado. No fundo desta lista, existirão algumas mensagens de erro que o deverão ajudar a compreender a causa do problema. Quando continuar a junção (com a tecla 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), o &kdiff3; indicar-lhe-á a opção para repetir ou saltar o item que causou o problema. Isto significa que, antes de continuar, poderá escolher outra operação ou resolver o problema por outros meios. 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. Quando a junção estiver completa, o &kdiff3; informá-lo-á então com uma mensagem. Se alguns dos itens foram reunidos individualmente, então o &kdiff3; irá recordar isto (enquanto esta sessão de junção prosseguir) e não os juntará de novo, até que a junção para todos os itens tenha sido executada. Mesmo quando a junção tenha sido ignorada ou não tenha sido gravado nada, estes itens irão contar como completos. Só quando tiver alterado a operação de junção é que o item será reunido de novo. +>If some items were merged individually 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 item will be merged again. Opções para Comparar e Juntar Pastas As preferências do &kdiff3; (no menu The &kdiff3; preferences (menu ConfiguraçãoSettingsConfigurar o KDiff3Configure KDiff3) têm agora uma secção intitulada Junção de Directorias com as seguintes opções: +>) now has a section called Directory Merge with these options: Só os ficheiros que correspondam ao padrão ou padrões aqui indicados é que serão colocados na árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula Only files that match any pattern here will be put in the tree. More than one pattern may be specified here via using the semicolon ;. São considerados caracteres especiais válidos o as separator. Valid wildcards: * e o and ?. (⪚ *.cpp;*.h). Por omissão, este campo é igual a ). Default is *. As pastas não precisam de corresponder a este padrão.. Directories need not match this pattern. Anti-padrões:Anti-Pattern(s):Os ficheiros e pastas que correspondam ao padrão ou padrões aqui indicados serão excluídos da árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula Files and directories that match this pattern will be excluded from the tree. More than one pattern may be specified here via using the semicolon ;. São considerados caracteres especiais válidos o as separator. Valid wildcards: * e o and ?. Por omissão, este campo é igual a . Default is *.orig;*.o.Ignora os ficheiros e pastas que são também ignorados pelo Ignore files and directories that would also be ignored by CVS. Muitos dos ficheiros gerados automaticamente são ignorados pelo . Many automatically generated files are ignored by CVS. A grande vantagem é que esta funcionalidade é específica para cada pasta através de um ficheiro . The big advantage is that this can be directory specific via a local .cvsignore local. (Veja em file. (See info:/cvs/cvsignore.)Em alguns sistemas de ficheiros, existe um atributo Escondido. Em outros sistemas, um nome de ficheiro que comece por On some filesystems files have an Hidden attribute. On other systems a filename starting with a dot (. faz com que este seja considerados escondido. Esta opção permite-lhe decidir se deve incluir estes ficheiros na árvore ou não. Por omissão, são incluídos.) causes it to be hidden. This option allows you to decide whether to include these files in the tree or not. Default is on. Para as ligações a pastas: Quando a opção estiver desactivada, as ligações simbólicas serão comparadas. Se estiver activa, então a ligação será tratada como uma pasta e será pesquisada recursivamente. (Lembre-se que o programa não verifica se a ligação é recursiva. Por isso, se uma pasta contiver por exemplo uma ligação para ela própria irá causar um ciclo infinito, pelo que ao fim de algum tempo a pilha estoira ou toda a memória será usada e o programa irá estoirar deste modo). Por omissão, a opção está desligada.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. Listar apenas os deltas:List only deltas:Somente os itens que não sejam iguais em todas as pastas de entrada é que serão listados, assim como os ficheiros alterados. Como tal, os ficheiros que sejam iguais em todas as pastas não serão copiados numa junção e, se a pasta de destino não contiver os ficheiros antes da junção, o utilizador poderá perder alguns ficheiros mais tarde. (Esta opção poderá ser alterada numa versão posterior). Por omissão, esta opção está desligada.Only items that are not equal in all input directories will be listed and only the changed files are visible. Hence files that are equal in all directories won't be copied during a merge and if the destination dir does not contain the files before the merge, you might miss some files later. (This option is likely to be changed in a later version.) Default is off. @@ -2603,7 +2636,7 @@ >Em vez de juntar, a operação proposta irá copiar os ficheiros mais recentes se ocorreram algumas alterações. (É considerado inseguro, porque implica saber se o outro ficheiro não foi também alterado. Verifique para se certificar em qualquer um dos casos.). Por omissão, a opção está desligada.Instead of merging the proposed operation will copy the newer source if changes happened. (Considered unsafe, because it implies that the knowledge, that the other file hasn't been edited too. Check to make sure in every case.) Default is off. Se um ficheiro ou uma pasta completa for substituído por outro ou for removido, então a versão original mudará para um nome com uma extensão .orig. Se já existir um ficheiro antigo com uma extensão .orig, então este será removido sem ser criada nenhuma cópia de segurança. Isto também afecta a junção normal de ficheiros simples, não só no modo de junção de pastas. Por omissão, a opção está activa.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. @@ -2625,38 +2658,38 @@ Outras Funções +>Other Functions Modo de Ecrã Repartido/Completo Normalmente a lista de junção da pasta fica visível enquanto um único ficheiro é comparado ou reunido. Com o rato, o utilizador poderá mover a barra separadora que delimita a lista de ficheiros das janelas de diferenças do texto. Se não a quiser, poderá desactivar a Janela Repartida no menu Directoria. Aí, poderá usar a opção Comutar a Vista no menu Directoria para alternar entre a lista de ficheiros e a janela de diferenças no texto que irá então ocupar o ecrã completo. +>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. Comparar ou Juntar um Único Ficheiro Provavelmente, você irá preferir um duplo-click do rato simples sobre um ficheiro para o poder comparar. Contudo, existe também um item no menu Directoria. Poderá também juntar directamente um único ficheiro sem iniciar a junção de pastas, através da opção Juntar um único ficheiro do menu Directoria. Ao gravar o resultado, o estado ficará como terminado e o ficheiro não será reunido de novo se for iniciada uma junção de pastas. 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, without starting the directory merge via the Merge single file in the Directory 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. Mas repare que esta informação de estado será perdida quando voltar a executar uma pesquisa de pastas: menu But note that this status information will be lost when you rerun a directory scan: DirectoriaDirectoryPesquisar de novoRescan @@ -2668,12 +2701,12 @@ >Tópicos Diversos Transparência na Rede Através do KIO +>Network Transparency via KIO KIO-Slaves O &kde; suporta a transparência na rede através dos 'KIO-slaves'. O &kdiff3; usa isto para ler os ficheiros de entrada e para pesquisar as pastas. Isto significa que você poderá indicar ficheiros e pastas em recursos locais e remotos através dos &URL;s. &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 &URL;s. Exemplo: @@ -2687,7 +2720,7 @@ A primeira linha compara um ficheiro local com outro ficheiro num servidor de &FTP;. A segunda linha compara uma pasta dentro de um pacote comprimido com uma pasta local. 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. Outros 'KIO-slaves' que serão interessantes: @@ -2705,7 +2738,7 @@ > Recursos do Windows (smb:),Windows-resources (smb:), Como Escrever &URL;s +>How To Write &URL;s Um dado &URL; tem uma sintaxe diferente, em comparação com as localizações dos ficheiros e pastas locais. Alguns factores terão de ser tidos em consideração: +>A &URL; has a different syntax compared with paths for local files and directories. Some things should be considered: Uma localização poderá ser relativa e conter A path can be relative and can contain . ou or ... Isto não é possível para os &URL;s, dado que estes são sempre absolutos. . This is not possible for &URL;s which are always absolute. Os caracteres especiais têm de ser escritos escapadosSpecial characters must be written with escaping. (#-> becomes %23, espaço->, spaces become %20, etc.) ⪚ Um ficheiro com o nome /#xpto# iria ter o URL file:/%23xpto%23 and so on.) ⪚ A file with the name /#foo# would have the &URL; file:///%23foo%23. Quando os &URL;s não funcionarem como seria de esperar, tente abri-los primeiro no &konqueror;. When &URL;s don't work as expected, try to open them in &konqueror; first. @@ -2768,9 +2801,9 @@ >Capacidades dos 'KIO-Slaves' A transparência na rede tem um senão. Nem todos os recursos têm as mesmas capacidades. Network transparency has one drawback: Not all ressources have the same capabilities. Algumas das vezes estas são devidas ao sistema de ficheiros do servidor, enquanto que noutras ocasiões poderá ser devido ao protocolo. Aqui está uma pequena lista das restrições: +>Sometimes this is due to the filesystem of the server, sometimes due to the protocol. Here is a short list of restrictions: Usar o &kdiff3; como uma KPart O &kdiff3; é uma KPart. De momento, implementa a interface &kdiff3; is a KPart. Currently it implements the KParts::ReadOnlyPart. interface. A sua utilização principal é como visualizador de diferenças no It's main use is as difference-viewer in KDevelop. O KDevelop inicia sempre o visualizador de diferenças interno em primeiro lugar. Para invocar o &kdiff3;, carregue no &RMB; na janela do visualizador de diferenças e seleccionar Mostrar no KDiff3Part no menu de contexto. . Kdevelop always starts the internal difference viewer first. To invoke &kdiff3; press the &RMB; on the difference viewer window and select Show in KDiff3Part from the contextmenu. O &kdiff3; necessita normalmente de dois ficheiros completos como entrada. Se for usado como componente KPart, o &kdiff3; irá assumir que o ficheiro de entrada é um ficheiro de 'patch' no formato unificado. O &kdiff3; irá então obter os nomes dos ficheiros originais do ficheiro de 'patch'. Pelo menos um dos dois ficheiros terá de estar disponível. O &kdiff3; irá então invocar o patch para criar de novo o segundo ficheiro. No &konqueror;, o utilizador poderá seleccionar um ficheiro de 'patch' e seleccionar In &konqueror; you can select a patch file and select Antevisão emPreview inKDiff3Part no menu de contexto. Tenha em atenção que isto não irá funcionar se nenhum dos ficheiros originais estiver disponível e não é fiável se os ficheiros originais tiverem sido alterados desde que o ficheiro de 'patch' foi gerado. 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. Quando é executado como um componente, o &kdiff3; só oferece uma diferença de dois ficheiros, uma barra de ferramentas muito pequena e um menu. A junção ou a comparação de pastas não é suportada nesse caso. +>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. @@ -2836,34 +2869,34 @@ Porque é que se chama &kdiff3;? Why is it called &kdiff3;? As ferramentas Tools named KDiff e and KDiff2 (agora chamada &kompare;) já existiam. Para além disso, o &kdiff3; deveria sugerir que consegue juntar ficheiros como a ferramenta (now called &kompare;) already exist. Also &kdiff3; should suggest that it can merge like the diff3 da colecção de ferramentas do Diff. tool in the Diff-Tool collection. Porque é que é lançado segundo a Why did I release it under GPL? O autor usou programas I'm using GPL durante bastante tempo até agora e aprendeu bastante ao olhar para bastante código. Daí, este é o Muito Obrigado para todos os programadores que também o fizeram ou irão fazer no futuro. 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. @@ -2874,17 +2907,15 @@ >Você compilou a partir do código mas não indicou provavelmente o prefixo correcto do &kde; com o You compiled from source but you probably didn't specify the correct &kde; prefix with configure. Por omissão, o configure deseja instalar no . By default configure wants to install in /usr/local, mas aí o &kde; não consegue encontrar o ficheiro de recursos da interface do utilizador (&ie;, o but then &kde; can't find the user interface ressource file (&ie; kdiff3ui.rc). O ficheiro ). The README contém mais informações sobre o prefixo correcto. file contains more information about the correct prefix. @@ -2895,11 +2926,11 @@ >As linhas em que apenas a quantidade de espaços em branco é diferente são tratadas como iguais à primeira vista, embora apenas um carácter que não seja um espaço em branco faça com que as linhas sejam diferentes. Se as linhas semelhantes aparecerem uma ao lado da outra, isto poderá ser de facto uma coincidência, mas é felizmente o caso mais frequente. Lines where only the amount of white space characters is different are treated as equalat 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. @@ -2917,9 +2948,9 @@ Porque é que o editor na janela do resultado da junção não tem uma função para desfazer? Why does the editor in the merge result window not have an undo function? Quando eu removi algum texto, apareceu de repente <Sem linha de origem> e esta não pode ser removida. O que é que significa e como é que se poderá removê-la? When I removed some text, then suddenly <No src line> appeared and can't be deleted. What does that mean and how can one remove this? Para cada secção igual ou diferente, o editor na janela do resultado da junção recorda onde é que esta começa ou termina. O <Sem linha de origem> significa que não existe mais nada livre numa secção, nem mesmo um carácter de mudança de linha. Isto poderá acontecer durante a junção automática ou durante a edição. Isto não é nenhum problema, dado que esta dica não irá aparecer no ficheiro gravado. Se você quiser os dados originais de volta, basta seleccionar a secção (carregue na coluna de resumo à esquerda) e depois no botão da origem com o conteúdo necessário (A/B ou C). 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). @@ -2975,7 +3006,7 @@ &kdiff3; - Ferramenta de Comparação e Junção de Ficheiros e Pastas Programa com 'copyright' 2002-2005 de Joachim Eibl Program copyright 2002-2005 Joachim Eibl joachim.eibl@gmx.de Requisitos Para poder usar todas as funcionalidades com sucesso do &kdiff3;, precisa do &kde; 3.1 ou posterior. In order to successfully use all features of &kdiff3;, you need &kde; 3.1 or greater. Para mais informações sobre como correr o &kdiff3; noutras plataformas sem o KDE, veja por favor a página pessoalFor information about how to run &kdiff3; on other platforms without &kde; please see the homepage. O utilizador poderá encontrar uma lista das alterações em You can find a list of changes at http://kdiff3.sourceforge.net/ChangeLog ou no ficheiro or in the ChangeLog do pacote de código. +> file of the source package. diff -r 2bb0f4dc64c0 -r f7dad0aa6146 kdiff3/doc/sv/index.docbook --- a/kdiff3/doc/sv/index.docbook Tue Apr 18 21:16:38 2006 +0000 +++ b/kdiff3/doc/sv/index.docbook Sun May 14 20:09:06 2006 +0000 @@ -1,10 +1,10 @@ -KDiff3"> - + ]> @@ -31,8 +31,6 @@ - - StefanÖversättare + 2006-03-12 +>2006-04-09 0.9.89 -&kdiff3; är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som Det här dokumentet beskriver Kdiff3 version 0.9.98. +>Det här dokumentet beskriver &kdiff3; version 0.9.89.