Diff & Merge

Diff ignores content type

Only interesting when diff are made with subversion itself. When set, than subversion diff ignores the content type of entries. Otherwise it will not output diffs from binaries.

Diff in revision tree is recursive

When set, diffs made from within revision tree view are made recursive like in all other cases, too. Otherwise only changes belonging to that folder items are shown. How that is made depends on how you let diffs generate (from subversion itself or from external viewers).

Diff ignores white space changes

Ignore changes in the amount of white space (option -b to diff)

Diff ignores all white spaces

Ignore all white space (option -w to diff)

Prefer external merge program

Set if merge with external program is preferred and not Subversion's merge

Use Git diff format

Show copies as add

Use external diff display

Selects an external application to display diffs. Default is Kompare.

External diff display

Defines what kdesvn is using for external display of differences and how it will be called. There are three ways:

<program> <parameter>

The difference will generated with subversion and put direct into standard input of the external program (i.e., no temporary files needed)

<program> <parameter> %f

The difference will be generated with subversion, saved into a temporary file and the parameter %f will be replaced with that file name. This may be used, for instance, with a simple call to less or text viewer.

<program> <parameter> %1 %2

kdesvn let the external program make the difference. %1 and %2 will be replaced with required values (file names or folder names). kdesvn stores content to compare in a temporary environment (when folders does an export, when single file, does a cat) when needed and cleans up after closing external program or closing itself.

Prefer external merge program

Select if in merge dialog Use external merge should be checked or not as default.

External merge program

Setup the program and options for using when subversion's builtin merge isn't wanted. The default is kdiff3 %s1 %s2 %t. The order of substitution variables isn't important, and them may there more than once, e.g. like kdiff3 -o %t %s1 %s2 %t. This stuff is only tested with meld and KDiff3. Think about that external programs mostly do not know anything about subversion ignore parameter so them may show lot more than expected.

Variable substitutions for external merge program


Substituted with source number one.


Substituted with source number two. If this is empty or this is equal to source one and start and end revision is same, this variable will skipped. So be careful setting up command lines like xxdiff --title1 %s1 --title2 %s2 %s1 %s2 %t.


Substituted with target.

Conflict resolver program

You may use an external program like KDiff3 for resolving conflicts, the default is kdiff3 %o %m %n -o %t.

Variable substitution for external conflict resolver

In parenthesis after each description is an example how subversion would call the files. These options are designed for KDiff3, because at this moment this is the only one application supporting all parameters required for a good conflict resolving.

%o or %l

Old (local, left) version. This means the lower revision number, i.e. the start point of conflicted changes. (foo.cc.r2)

%m or %w

Mine (working) version of file, i.e. what you had changed against old version. (foo.cc.mine)

%n or %r

New (remote, right) version of file. For example, version someone other had made. (foo.cc.r3)


Target name, e.g. the origin name. For KDiff3 (as an example) this would be name after the -o parameter (= output file). (foo.cc)