Username Password
Bookmark and Share

Using SVK with Subversion


"SVK is a decentralized version control system built with the robust Subversion filesystem. It supports repository mirroring, disconnected operation, history-sensitive merging, and integrates with other version control systems, as well as popular visual merge tools."  -- see

Caveat Emptor 

SVK is a work-in-progress. I use it for development but have had to re-checkout a working directory or delete my local branch and rebuild from the upstream SVN repository. It has never been tragic but can be a nuisance. For me, the benefits outweigh the risks.

If you are always online, an alternative pattern would be to checkout your working directory from the mirror. The limitations of doing this is that, unless you have a commit bit, you will not be able to track your modifications and you cannot work offline.


It is assumed that you have installed SVK and initialized your depot (see the link above for a tutorial).

  • Import Subversion repository (note: synch'ing will take awhile so have a good connection, about 200Mb of diskspace, and something useful to do while you wait; if the synchronization fails along the way, simply restart it)
svk mkdir //mirror
svk mirror //mirror/plainblack
svk sync //mirror/plainblack
  •  Build a local branch of latest dev for offline development
svk cp -m'Create local branch' //mirror/plainblack //local/plainblack
  • Checkout the local copy of HEAD to a working directory
svk co //local/plainblack/WebGUI
  •  Checkout the 7.4 branch to a working directory

svk co //local/plainblack/branch/WebGUI_7.4

Now you can begin working on a local copy of WebGUI. To keep synchronized with the upstream, use 'svk pull' from your working directory (e.g., ~/WebGUI). To work on a branch, make a copy of the appropriate path (e.g., //mirror/plainblack/branch/WebGUI_7.3 //local/WebGUI_7.3).

Keywords: subversion svk

Search | Most Popular | Recent Changes | Wiki Home
© 2022 Plain Black Corporation | All Rights Reserved