You're not currently signed in.

SVK can be a proxy server between local SVK repository and upstream CVS repository.

In following example of real usage the Simpletest project from Sourceforge will be mirrored through SVK:

# Download the nightly CVS tarball from Sourceforge

# to local directory

proxy$ mkdir cvs

proxy$ cd cvs

proxy$ wget http://cvs.sourceforge.net/cvstarballs/simpletest-cvsroot.tar.bz2



# Unpack the tarball locally

proxy$ tar jxvf simpletest-cvsroot.tar.bz2



# Create local SVK depotmap

proxy$ svk depotmap /simpletest/ ~/.svk/simpletest



# Set up the mirror for simpletest module from CVS repository

proxy$ svk mirror /simpletest/mirror/simpletest \

       cvs:/home/services/svn/cvs/simpletest:simpletest/...



# Sync the CVS mirror for simpletest module

proxy$ svk sync /simpletest/mirror/simpletest



# Now relocate mirror path.  There's no SVK command to

# do this, so you have to use "svn propset" to set the

# "svm:source" property which "svk sync" will use later.

proxy$ cd ..

proxy$ mkdir svn

proxy$ svn checkout -N \

       file:///home/services/svn/svk/simpletest/mirror/simpletest

proxy$ svn propset svm:source \

       cvs::pserver:anonymous:@cvs.sourceforge.net:/cvsroot/simpletest:simpletest/..." \

       simpletest

proxy$ svn commit simpletest



# After syncing, create branch which will be exported later.

# It have to be baseless smerge at first time.

proxy$ svk mkdir /simpletest/proxy

proxy$ svk smerge --verbatim -I -B /simpletest/mirror /simpletest/proxy



The ~/.svk/simpletest directory can be exported with e.g. apache + mod_dav_svn.so module as http://proxy.example.com/simpletest.

As far as the proxy server is prepared, it can be used by local clients:

local$ svk mirror /simpletest/mirror \

       http://proxy.example.com/simpletest/proxy

local$ svk sync /simpletest/mirror



Further synchronizing of mirror would be:

proxy$ svk sync /simpletest/mirror/simpletest

proxy$ svk smerge --verbatim -I /simpletest/mirror \

       /simpletest/proxy



local$ svk sync /simpletest/mirror