svk sync — Download upstream changes into mirrored DEPOTPATHs.


svk sync [--skipto REV] [--torev REV] DEPOTPATH
svk sync --all [DEPOTNAME|DEPOTPATH]...


The first form downloads upstream changes to the mirror anchored at the specified DEPOTPATH, optionally limited to the specified revision range.. The second form downloads all upstream changes to all mirrors in the specified depots (which can be specified by name or a path in the depot).

Alternate Names



Depot or depots being updated.

Accesses Depot


Accesses Mirrored Repository



--all (-a)
--skipto (-s) REV
--torev (-t) REV


To mirror the svkbook sources and just mirror the current HEAD rather than the entire history run:

$ svk mirror svn:// //mirror/svkbook
Committed revision 12.
$ svk sync --skipto HEAD //mirror/svkbook
Retrieving log information from 58 to 58
Committed revision 13 from revision 58.

To download all changes you don't yet have for all your mirrors run:

$ svk sync --all
Starting to synchronize //mirror/svkbook
Syncing svn://
Retrieving log information from 59 to 60
Committed revision 14 from revision 59.
Committed revision 15 from revision 60.


Running svk sync will never modify any working copies, nor will it ever cause any conflicts or merges to happen. This is because it's the only way a mirrored depotpath will ever get written to[21]. So it's safe (and recommended) to run svk sync whenever you have connectivity. Even committing to a mirrored path using svk commit or any other command the does a direct modification of the depot will not actually change the mirrored path directly. Instead it commits to the mirror first and then runs an implicit svk sync for you.

[21] With the exception of the property changes at the mirrors anchor made by svk mirror --relocate.