Other Operations

Merge

Open repository or working copy, mark item you want to merge and select Subversion->General->Merge. Enter in the following dialog the values wanted. If opend 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-programm like kdiff3. The target must ALWAYS a local folder or file. You may switch between external or internal merge with the checkbox "Use external merge".

Internal merge

The meaning is exactly like from within subversions own commandline 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 checkboxes have following meanings:

Recursive

Do all operations recoursive 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

If not set and merge would require deletion of an modified or unversioned item the subversion merge fails. Otherwise this items will deleted.

Just dry run without modifications.

If set, subversions sends only notifications what it would do but doesn't modify the working copy.

Using external program for merge

See the section called “Diff & merge” for details how to setup the external merge tool. kdesvn generates the commandline as described there. Before it does following:

  1. 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, its a three-way merge otherwise a simple merge from source to target. If source 2 is left empty it is a simple merge, too.

  2. Make an export into temporary folder. If a simple merge only source1 at start-revision, otherwise both sources with there revisions. If item is a file and not a folder than get the content at a specific revision.

  3. 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 whats going wrong (if something is gone wrong).

In difference to internal merge target may a flat folder/file not under sourcecontrol 'cause external tools doesn't care about it.

If recoursive isn't set, the export is done as a flat export. Be care: when doing this with working copies externals will NOT exported.

Resolving conflicts

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 Subversion->Working copy->Resolve conflict. or from within context menu Resolve conflict (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 (Subversion->Working copy->Mark resolved) otherwise you will not able to commit your changes.