一,创建备份库
svnadmin create F:\BackupTest 此命令指定将备份文件创建到哪个目录下面。
二,设置hooks
1, 首先打开要备份库的hooks目录,如:F:\svnDump\svntest\hooks ,打开其中的pre-revprop-change.tmpl文件,将最后的exit 1改为exit 0;
2,在此hooks目录下添加文件——pre-revprop-change.bat,并在里面输入:echo "Changing revision properties other than svn:log is prohibited" >&2
exit 0 保存;
3,打开备份目录的hooks文件:F:\BackupTest\hooks ,并对其中的pre-revprop-change.tmpl 照上步骤1修改,对照上面步骤而添加同名同内容文件;
三,执行svnsync命令
建立如下批处理命令,并执行:
<span style="font-family:Microsoft YaHei;"> echo 正在准备备份SVN库文件。。。(目的路径,原路径) svnsync init file:///F:/BackupTest file:///F:/svnDump/svntest --allow-non-empty echo 开始同步。。。(目的路径) svnsync sync file:///F:/BackupTest pause </span>
四,设置提交代码时自动备份
打开要备份的库,找到hooks文件夹:
在其中加入post-commit.bat 文件,并在其中写入:
<span style="font-family:Microsoft YaHei;">echo off set SVN_HOME="C:\Program Files (x86)\VisualSVN Server\bin" %SVN_HOME%\svnsync sync --non-interactive file:///F:\BackupTest <span style="font-size:18px;"> </span></span>
这样,每次提交时,我们就可以看到备份库中,如下文件加会加入一个新版本备份:
小结:
今天做备份库时发现大致有三种方式,一种是dump导出方式,第二种是热备份方式,第三种是这种;这三种可以说各有优缺点,但是我最后还是选择了这种,因为这种方式支持从一个服务器备份到另一个服务器,但现在备份服务器还没申请下来,就先做出本地备份的批处理文件,到时候改改路径就可以接着用了。