Open repository or working copy, mark item you want to merge and select → → . Enter in the following dialog the values wanted. If opened from repository, source 1 and source 2 are filled, when open from within working copy, target is filled with current selected item. The handling of this parameter is a little bit different between using the internal diff of subversion or an external merge-program like KDiff3. The target must ALWAYS a local folder or file. You may switch between external or internal merge with the check box Use external merge.
The meaning is exactly like from within subversion's own command line tool. When source1 and source2 are equal, start and endrevision must different. If sources aren't equal, start-revision is assigned to source1 and end-revision to source2. The target MUST be a working copy otherwise subversion will send an error message.
The check boxes have following meanings:
Do all operations recursive when working with folders.
- Handle unrelated as related items
If set, unrelated items will be diffed as if they were related. Otherwise subversion will remove one side and add it on other side again.
- Force delete on modified/unversioned items
If not set and merge would require deletion of an modified or unversioned item the subversion merge fails. Otherwise this items will be deleted.
- Just dry run without modifications
If set, subversion sends only notifications what it would do but doesn't modify the working copy.
See the section called “Diff & Merge” for details how to setup the external merge tool. kdesvn generates the command line as described there. Before it does following:
Assign start-revision as revision to source 1 and end-revision to source 2. Then checks if them are different (path and/or revision). If yes, it is a three-way merge otherwise a simple merge from source to target. If source 2 is left empty it is a simple merge, too.
Make an export into temporary folder. If it is a simple merge only source 1 at start-revision, otherwise both sources with their revisions. If item is a file and not a folder then get the content at a specific revision.
Generate the call to your external merge program as you setup in Settings. The error output will displayed in log window so you may see what is going wrong (if something is gone wrong).
In difference to internal merge target may a flat folder/file not under version control because external tools do not care about it.
If recursive is not set, the export is done as a flat export. Be care: when doing this with working copies externals will not be exported.
kdesvn itself hasn't a module for resolving conflicts but you may use external software from within kdesvn. In the section called “Conflict resolver program” is a description how to setup up this application.
When marking an item with status set to “conflicted” (you'll see a red cross in listview on such items) you may select → → . or from within context menu (only on conflicted items) kdesvn now starts the program you setup (or the default one). After finish this job you should mark item as resolved ( → → ) otherwise you will not able to commit your changes.