kdiff3
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TDE Gitea 3028b2c145 Reset submodule main/applications/kdiff3/cmake to latest HEAD 2 days ago
admin @ 68f23556e6 Reset submodule main/applications/kdiff3/admin to latest HEAD 2 days ago
cmake @ 0a40752779 Reset submodule main/applications/kdiff3/cmake to latest HEAD 2 days ago
data Fix help handbook, man page, and location of html doc files. 5 years ago
diff_ext_for_kdiff3 Update translation files 1 month ago
doc Fix invalid headers in PNG files and optimize for size 2 years ago
kdiff3plugin Update translation files 1 month ago
man Fix help handbook, man page, and location of html doc files. 5 years ago
po Update translation files 1 month ago
src Add CMakeL10n rules. 1 month ago
templates Added abandoned KDE3 version of kdiff3 9 years ago
.gitmodules Added common directories 7 years ago
AUTHORS Added abandoned KDE3 version of kdiff3 9 years ago
CMakeL10n.txt Add CMakeL10n rules. 1 month ago
COPYING Added abandoned KDE3 version of kdiff3 9 years ago
ChangeLog Additional k => tde renaming and fixes 5 years ago
Doxyfile Added abandoned KDE3 version of kdiff3 9 years ago
INSTALL Added abandoned KDE3 version of kdiff3 9 years ago
Makefile.am Added abandoned KDE3 version of kdiff3 9 years ago
Makefile.cvs Added abandoned KDE3 version of kdiff3 9 years ago
NEWS Added abandoned KDE3 version of kdiff3 9 years ago
README qt -> tqt conversion: QTDIR -> TQTDIR QTDOC -> TQTDOC INCDIR_QT -> INCDIR_TQT LIBDIR_QT -> LIBDIR_TQT QT_INC -> TQT_INC QT_LIB -> TQT_LIB 4 months ago
TODO Added abandoned KDE3 version of kdiff3 9 years ago
acinclude.m4 Replaced _BSD_SOURCE, _SVID_SOURCE with _DEFAULT_SOURCE. Removed AC_CHECK_GNU_EXTENSIONS. 4 months ago
aclocal.m4 Added abandoned KDE3 version of kdiff3 9 years ago
config.guess Added abandoned KDE3 version of kdiff3 9 years ago
config.h.in Added abandoned KDE3 version of kdiff3 9 years ago
config.sub Added abandoned KDE3 version of kdiff3 9 years ago
configure.files Added abandoned KDE3 version of kdiff3 9 years ago
configure.in KDE_USE_QT* -> KDE_USE_TQT* conversion 5 months ago
configure.in.in Add automake support for --enable-gcc-hidden-visibility. 6 years ago
kdiff3.spec qt -> tqt conversion: QTDIR -> TQTDIR QTDOC -> TQTDOC INCDIR_QT -> INCDIR_TQT LIBDIR_QT -> LIBDIR_TQT QT_INC -> TQT_INC QT_LIB -> TQT_LIB 4 months ago
kdiff3.tdevelop Finish rename from prior commit 7 years ago
stamp-h.in Added abandoned KDE3 version of kdiff3 9 years ago
subdirs Added abandoned KDE3 version of kdiff3 9 years ago

README

KDiff3-Readme
=============

Author: Joachim Eibl (joachim.eibl at gmx.de)
Copyright: (C) 2002-2006 by Joachim Eibl
KDiff3-Version: 0.9.92


KDiff3 is a program that
- compares and merges two or three input files or directories,
- shows the differences line by line and character by character (!),
- provides an automatic merge-facility and
- an integrated editor for comfortable solving of merge-conflicts
- has support for TDE-TDEIO (ftp, sftp, http, fish, smb)
- and has an intuitive graphical user interface,
- also supports 64 bit systems. (Some build issues are discussed in here.)


Do you want help translating? Read the README in the po-subdirectory!


License:
GNU GENERAL PUBLIC LICENSE, Version 2, June 1991
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301 USA

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.91 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.)
It is now also possible to build with Qt4 (See further below).

You always need
- kdiff3-0.9.91.tar.gz

For building the KDE3-version
- KDE>=3.3 and QT>=3.3-libraries. (but not with KDE4)
- gcc, g++ with version >=3.2

For building the Qt-only-version
- QT-libraries (version >=3.3.0, but <4.0 or >=4.2.0).
(www.trolltech.com)
- for Un*x: gcc, g++ with version >=3.2
- for Windows: VC6 / VC7.1

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
- tdelibs-devel

Installation for KDE3:
- Make sure your shell-variable TQTDIR is correct. (echo $TQTDIR).
If it doesn't contain the correct path, type
export TQTDIR=your_path_to_qt (e.g. /usr/lib/qt3)
- cd into the directory kdiff3-0.9.91 and type
- ./configure --prefix=/opt/trinity (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".

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.

This command should tell you: tde-config --prefix

For SuSE and most distributions the prefix usually is /opt/trinity.
For Redhat/Fedora and Mandrake the prefix usually is /usr.
For a local installation, that doesn't need root rights try
- ./configure --prefix=$TDEHOME ($TDEHOME probably is the same as $HOME/.trinity)
- make
- make install (Installs everything in $TDEHOME. No root rights required.)
- Run $TDEHOME/bin/kdiff3. ($TDEHOME/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 $TDEHOME -name "*kdiff3*" -not -name "kdiff3*rc"`)

On Fedora-64-bit systems the following configure-line was reported to work:
./configure --prefix=`tde-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 libtqt-mt
(strangely enough: libtqt-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/.trinity /usr /opt -iname "*kdiff3*"
(Will take a few minutes.)


Building an RPM for Fedora Core (by Vadim Likhota)
Copy kdiff3-0.9.91.tar.gz into /usr/src/redhat/SOURCE
Copy kdiff3.spec into /usr/src/redhat/SPEC
Run rpmbuild -bb --target i686 kdiff3.spec
Find kdiff3-0.9.91-fc.i686.rpm in /usr/src/redhat/RPMS/I386


Installation for the Qt-only-platforms for Un*x:
(for Qt >=3.3.0 but <4.0)
- Make sure your shell-variable TQTDIR is correct. (echo $TQTDIR).
If it doesn't contain the correct path, type
export TQTDIR=your_path_to_qt (e.g. /usr/lib/qt)
- cd into the directory kdiff3-0.9.91/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.
- A user reported that on his 64-bit machine running FC4 he had to edit his Makefile.qt
LIBS = $(SUBLIBS) -L/usr/lib64/ -L$(TQTDIR)/lib64/ -L/usr/lib -L$(TQTDIR)/lib/ -L/usr/X11R6/lib/ -L/usr/X11R6/lib64/ -lqt-mt -lXext -lX11 -lm -lpthread


Build for Windows:
Use qmake and kdiff3.pro to generate
an appropriate Makefile.
qmake kdiff3.pro -o Makefile


Building KDiff3 (Qt3) for Mac OSX 10.3.8 (by Mark Teel)
-------------------------------------------------------
1) Install Qt/Mac with thread support and static libraries.
2) cd .../kdiff3-0.9.91/src
3) Create a makefile for kdiff3 by executing:
qmake kdiff3.pro -o Makefile.qt
4) 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 ...
5) Execute:
make -f Makefile.qt
6) After the build completes copy kdiff3 from the kdiff3-0.9.91/src directory to
/Applications

Building KDiff3 (Qt4) for Mac OSX (with Intel processor) as a universal binary (by Michael Schmidt)
---------------------------------------------------------------------------------------------------
1) Install Qt/Mac 4.x with thread support, static libraries and universal flag.
2) cd .../kdiff3-0.9.91/src-QT4
3a) Create a makefile for kdiff3 by executing:
qmake kdiff3.pro
3b) optionally generate XCode-Project (for debugging purposes only) by executing:
qmake -spec macx-xcode kdiff3.pro
4) Execute:
make
5) After the build completes copy kdiff3 from the kdiff3-0.9.91/src-QT4 directory to
/Applications

----------------------------------------------------------------

Building KDiff3 with Qt4:

Requirements & Installation:
The version 0.9.91 requires Qt 4.2.0 (from www.trolltech.com) for compilation.

You always need
- kdiff3-0.9.91.tar.gz

- for Un*x: gcc, g++ with version >=3.4.2
Qt-X11-libraries

- 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.)

- for Mac: gcc, g++ with version >=3.4.2
Qt-Mac-libraries


Note for KDE-users:
The version 0.9.91-Qt4 doesn't provide support for KDE-3.x
because KDE-3.x.y requires Qt3.
If you need KDE-specific features like TDEIO-support stick to the
normal version 0.9.91.

Build-instructions (Unix or Mac):
- Make sure your shell-variable TQTDIR is correct and that
your path contains the Qt4-bin-directory.
- cd into the directory kdiff3-0.9.91/src-QT4 and type
- qmake kdiff3.pro
- make (or "gmake" for GNU-Make)

Build-instructions (Windows):
- Run your qtvars.bat in the Qt4-bin directory.
(This should set your TQTDIR, QMAKESPEC and PATH-environment-variables.)
- cd into the directory kdiff3-0.9.91/src-Qt4 and type
- qmake kdiff3.pro
- make (which calls either "mingw32-make" or "nmake")

Debugging with MinGW under Windows:
- The qt-win-opensource-4.2.0-mingw.exe only installs release dlls. You will have to compile the
debug dlls yourself. Enter the qt-4.2.0-directory and run "configure -debug" and then "make".
- cd into the directory kdiff3-0.9.91/src-Qt4
- 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!

(End of KDiff3 with Qt4-instructions)
------------------------------------------------------------------------


Start from commandline:
- Comparing 2 files: kdiff3 file1 file2
- Merging 2 files: kdiff3 file1 file2 -o outputfile
- Comparing 3 files: kdiff3 file1 file2 file3
- Merging 3 files: kdiff3 file1 file2 file3 -o outputfile
Note that file1 will be treated as base of file2 and file3.

If all files have the same name but are in different directories, you can
reduce typework by specifying the filename only for the first file. E.g.:
- Comparing 3 files: kdiff3 dir1/filename dir2 dir3
(This also works in the open-dialog.)

If you start without arguments, then a dialog will appear where you can
select your files via a filebrowser.

For more documentation, see the help-menu or the subdirectory doc.

Have fun!