[svk-users] pull / sync mirror via sneakernet

Jared Hardy jaredhardy at gmail.com
Wed Feb 13 16:27:21 EST 2008


On Feb 5, 2008 6:39 PM, Andrew Sasak <andrew.sasak at gmail.com> wrote:
> Warning, I'm extremely new to SVK, but am quite familiar with SVN.

Then you should be familiar with this command:
svnadmin dump file:///repopath --incremental -r REV:HEAD --deltas
?

> I have a machine that cannot be networked and from which no data can be
> downloaded to media, etc. Is there any way I can setup a depot on it
> which can be updated by moving only the new revisions to it.

The svk WC is essentially just a Subversion repository, so the
svnadmin tools should be sufficient to manipulate its data. In your
example, you want to update an offline box at rev 1000 to the latest
svk mirror rev. I think this is what the commands would look like:

On source svk box:
$ svnadmin dump file:///~/.svk/cache/repo --incremental -r 1000:HEAD --deltas \
| gzip > svkdump-r1000-HEAD.dump.gz

$ cdburn svkdump-r1000-HEAD.dump.gz /cd-mount/.

On destination svk box:
$
gunzip /cd-mount/svkdump-r1000-HEAD.dump.gz \
> svnadmin load file:///~/.svk/cache/repo

This method assumes you wont ever commit to the offline svk repository
-- it's just for read-only access. I just typed that up quickly to
give a rough idea of the process, and potential commands involved --
please never use that verbatim. I don't know where your svk cache
repositories are located on your system -- the above file:/// path is
based on a wild guess and is not useful. I don't think the svk caches
need to match any other data, but I could be wrong, so test this
method in a safe environment that you don't care about losing. The
other svk-specific files are pretty small (like the .svk\config text
file), so you could just copy those around at the same time, if you
feel the need.
    Another method might be to keep two mirrors on the networked
source machine -- one to mirrored to the latest source repository, and
another to keep in sync with the offline repository (same mirror, but
always kept at the same rev as the offline box). Assuming you have
access to some folder-tree binary diff file creation method, use that
to create a bdiff file between the two repositores, apply the bdiff
file to the offline repository. Last sync the "offline sync mirror",
on the online box, to the same revision, to prepare for the next round
of bdiffs. This also assumes you will never write/commit to the
offline repository directly.

:) Jred


More information about the svk-users mailing list