svnsync.exe是Subversion提供的一个用于同步版本库的工具,通过svnsync.exe同时可以达到备份SVN版本库的目的。

svnsync的使用方法如下:

1、svnsync init
初始化,建立目标库和源库之间的同步关系
命令格式 svnsync init 目标库URL 源库URL
2、svnsync sync
真正的同步
命令格式 svnsync sync 目标库URL

如果我们需要将jQuery的SVN版本库(http://jqueryjs.googlecode.com/svn/)复制到本机来
具体操作过程如下:

1、在本机上,创建目标库
F:\Subversion>svnadmin   create   jqueryjs
将目标库创建在F:\Subversion\jqueryjs目录中,修改F:\Subversion\jqueryjs\conf目录下的配置文件,具体方法参考:
Subversion权限设置详解

2、修改目标库的脚本pre-revprop-change
此时如果直接运行 svnsync init svn://localhost/jqueryjs
http://jqueryjs.googlecode.com/svn 将提示创建pre-revprop-change的“钩子”
svnsync: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook

在hooks目录下新建 pre-revprop-change.bat 文件(Linux操作系统下为pre-revprop-change)文件的内容为:
exit 0;

3、初始化
F:\Subversion>svnsync init svn://localhost/jqueryjs
http://jqueryjs.googlecode.com/svn
Authentication realm: <svn://localhost:3690> d3ec8b15-78a3-9d4a-9d49-382b8d00a3cd
Password for ‘Administrator’:
Authentication realm: <svn://localhost:3690> d3ec8b15-78a3-9d4a-9d49-382b8d00a3cd
Username: jquery  //提示输入用户名
Password for ‘jquery’: ******** /提示输入密码
Copied properties for revision 0 (svn:sync-* properties skipped).

 4、同步
F:\Subversion>svnsync sync svn://localhost/jqueryjs
Transmitting file data …………
Committed revision 1.
Copied properties for revision 1.
Transmitting file data .
Committed revision 2.
Copied properties for revision 2.

参考:
svnsync:Subversion备份版本库的好工具
【版本控制之路】版本库的备份

F:\Subversion>svnsync help
general usage: svnsync SUBCOMMAND DEST_URL  [ARGS & OPTIONS ...]
Type ‘svnsync help <subcommand>’ for help on a specific subcommand.
Type ‘svnsync –version’ to see the program version and RA modules.

Available subcommands:
   initialize (init)
   synchronize (sync)
   copy-revprops
   help (?, h)