Beginning with subversion and kdesvn

This section is mostly for beginners not familiar with subversion and explains how subversion and/or revision control systems (RCS) works.

Creating a working copy


Working copies MUST be accessible via local paths. Subversion does not know anything about pseudo file systems like smb:// or fish://. kdesvn translates some of them if possible (like system:/home) but it is not possible over a network.

First of all you must create a working copy of your repository. For that select SubversionGeneralCheckout a repository. Inside the following dialog you must select the URL of the repository you want to use, e.g., something like http://localhost/repos/myproject. Subfolders of a repository are possible, too, e.g., http://localhost/repos/myproject/trunk or similar.

Select and/or create a local folder, where the working copy should reside.

Last but not least, the revision to checkout. Mostly that should be HEAD. This ensures that the last stored version is the referenced version.

After clicking on OK kdesvn will create your new working copy and (if the box was checked) opens it.

When you have opened a repository for browsing you may mark a folder and than select SubversionRepositoryCheckout current repository path and fill out the dialogs as described above. Then only the marked path will checked out.

Committing local changes

Mark the entry or entries you want to send and select SubversionWorking copyCommit (Ctrl+#)

If you try to commit if no item is selected, kdesvn uses the top-most element of opened working copy, i.e., the working copy path itself.

This operation is always recursive, means, if selecting a folder kdesvn always send all changed items below it. When you setup that you want to review all items before commit inside the following dialog all items kdesvn would send are listed. There you may unmark items you don't want to send. In that case kdesvn sends all items alone, i.e., not recursive. Or you may select items not versioned for add and commit (if them are not marked to be ignored). So you may see if there are newer items you forgot.

Enter a log message what you're sending and hit OK and the transfer starts.

Update working copy

This brings you local working copy in sync with the repository. You may setup that kdesvn checks on opening a working copy for newer/modified items in repository. This runs in background and you may work meanwhile with kdesvn. When this is finished, items with newer versions or folders with items where newer items are below are marked.

To retrieve the changes, select SubversionWorking copyUpdate to head. This will update to the most latest version. If you want to get a specific revision select SubversionWorking copyUpdate to revision and select the revision you want in the following box.

If no item is selected, the update will done on whole opened working copy, otherwise only recursive on the selected items.

Adding and Deleting from working copy

Both operations requires two steps: First add or delete and then committing that changes to repository. Before you commit you may undone add or delete.

Add items

Adding items into a working copy may be done due three ways:

Select not versioned items and add them

Copy with Konqueror or any other tool into working copy area. Go trough list, mark them and select SubversionWorking copyAdd selected files/dirs (Insert). When you want adding new folders with all subitems select SubversionWorking copyAdd selected files/dirs recursive (Ctrl+Insert).

Check and add recursive

You may check if there are somewhere in working copy unversioned items. After selecting SubversionWorking copyCheck for unversioned items a dialog appears where all not versioned items are listed. Hitting OK adds all marked items to working copy, items you don't want versioned you should unmark before.

Drag and drop

Mark in Konqueror or any other compatible file browser items you want to add and drag them to kdesvn. You may drop them on folders inside the opened working copy and then kdesvn copy the dropped items to it and add the items.

Deleting items from working copy and unversion

Deleting items is always recursive. For example, when you delete a folder all subitems will be deleted, too. Mark what you want and select SubversionGeneralDelete selected files/dirs menu item. Items will be unversioned and removed from disk.

Displaying logs

The log display may start with Ctrl+L when one or none item is marked in overview. Depending on your settings (see Table 5.1, “Subversion”) kdesvn retrieves some log entries beginning on HEAD and displays them.

The log display dialog

On the left side you see the list of log entries retrieved by kdesvn. The log message is stripped-down to one line to fit. The full log message appears in the upper-right window when marking an entry. In the lower-right window you will see the list of changed files. These windows only appear if this list is fetched, depending on your settings.

With the buttons on the top you may select another range of logs to display.


This range is called without any pre-limit, so be careful when using this feature on large repositories.

The buttons on the bottom of the dialog always work on the item selected for log, not on the item selected in the list of changed files. So when you select Diff previous there, it makes the diff over all changed items in this revision if they are equivalent or below the subversion entry selected before for retrieving logs. Same for Diff revisions.

Annotate of course works only if item to log is a file.

On all list entries (both lists) you have context menu enabled for some extra operations. In left list this is Set version as left side of diff (i.e. beginning revision) and Set version as right side of diff (i.e. end or target of diff, in unified the part marked with a +++). If you selected these revisions them are marked with some small arrows.