安装:
1.下载Subversion Server :CollabNetSubversionEdge-1.3.1_setup.exe
2.下载Java 1.6,并安装。
3.安装服务器,在保证服务器上没有程序使用80端口,如果已经有了,会导致Apache服务启动失败。安装完成后,可以通过ApacheMoniter程序查看,当然安装完成后最好重新启动系统。
4.在客户机安装TortoiseSVN,如果还需要配合VS开发,还需要安装AnkhSvn。
5.通过Web管理端登陆服务器,然后创建一个版本库。例子s3。
6.在客户机中把关心的目录导入版本库,然后删除该目录,然后再导出,目录中才能出现.svn信息目录。注意超过2G的文件导入会失败,文件太大了。
备份:(例子:备份http://idyj.net/svn/s3到g:/csvn/backup/repositories/s3)
1.在目标服务器上创建空的版本库。
2.hooks目录下,创建pre_revprop-change.bat,内容为exit 0。
3. 在命令行执行svnsync init file:///g:/csvn/backup/repositories/s3 http://idyj.net/svn/s3
结果:Copied properties for revision 0.
4.开始同步:svnsync sync file:///G:/csvn/backup/repositories/s3
结果:
Committed revision 1.
Copied properties for revision 1.
5.当同步大的库时,有可能失败,失去响应,强制退出同步程序会导致目标库被锁定,
Failed to get lock on destination repos, currently held by 'cqsvr:1f8d238a-ab01-5344-a953-3de4834e4072'
那么你就需要把版本号重置为0,解锁。
svn propdel svn:sync-lock --revprop -r 0 file:///G:/csvn/backup/repositories/s3
6.最后需要在源版本库中hooks中的创建post-commit.bat,把通过语句加入进去实现每次提交后自动同步的目的。
特别注意的时,这里的同步命令需要用户名和账号,否则不会成功。
@echo off
set SVN_HOME=d:\csvn
set SVN_ROOT=D:\csvn\data\repositories
set BACK_DEST=file:///G:/csvn/backup/repositories
set BACK_SRC=http://idyj.net/svn
set REPO=%1
%SVN_HOME%\bin\svnsync sync --non-interactive --username sync --password ****** %BACK_DEST%/%REPO%
echo %date:~0,11%%time%同步版本库%BACK_SRC%/%REPO%到%BACK_DEST%/%REPO%>>%SVN_ROOT%/backup.log
最好创建一个专门用户用户备份版本库,只需要权限ROLE_ADMIN_REPO - 版本库管理员