=摘要=
在svn中,利用svnsync命令可以对某个代码仓库进行备份.这里主要简介怎么使用svnsync进行仓库备份以及一些需要注意的地方.
下面将详细说明一下是怎么进行备份的.(测试平台是linux 2.6.x + svn 1.6.x),对于win平台将是类似的做法.
=实施备份=
这里的备份是完全复制一个远程仓库.
1: 使用svnadmin仓库一人本地的空的仓库.
$svnadmin create ~/svn-storage-bak
2: 修改这个新的仓库的相关脚本
2.0 进入svn-storage-bak这个仓库的根目录中:~/svn-storage-bak
2.1:复制hooks/pre-revprop-change.tmpl为hooks/pre-revprop-change
2.2:给上面这个脚本加上执行权限.
#chmod u+x hooks/pre-revprop-change
2.3:编辑上面脚本,添加如下命令,使得每一行非注释指令是exit 0
{{{
exit 0
}}}
然后就是保存啦.
3: 使用svnsync设置新的仓库同步指向目标仓库
$svnsync init file:////home/usrname/svn-storage-bak 目标仓库的url
4: 进行同步了.
$svnsync sync file:///home/usrname/svn-storage-bak
5: 这个时候将看到标准输出一些备份信息.
好了,上面演示了怎么备份一个已有数据的版本仓库,下面将讨论这过程中的相关注意地方..
=注意=
存储目标仓库的备份的svn仓库要是一个空的仓库,否则将有如下提示.
svnsync: Cannot initialize a repository with content in it