源服务器上用命令用 svnadmin hotcopy 所有版本文件和配置包括用户密码
我的目录是
[root@iZ940sqprcdZ repos]# pwd
/data/www/svn/repos
repos就是项目文件夹
[root@iZ940sqprcdZ repos]# ls
conf dav db format hooks itdida-robots locks README.txt
[root@iZ940sqprcdZ repos]#cd ..
[root@iZ940sqprcdZ svn]# svnadmin hotcopy repos backupSvn
备份OK!
压缩一下 tar -zcvf backupSvn.tar.gz backupSvn
scp backupSvn.tar.gz 到想恢复的服务器 或者其他方法存储 backupSvn 也可以。
然后
新服务器 安装 apache 参考我的apche 安装
安装 svn
yum install -y mod_dav_svn subversion
装完配置 apache
vim /etc/httpd/conf.d/subversion.conf
粘贴
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be both:
#
# a) readable and writable by the 'apache' user, and
#
# b) labelled with the 'httpd_sys_content_t' context if using
# SELinux
#
#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
# # chcon -R -t httpd_sys_content_t stuff
#
#<Location /repos>
# DAV svn
# SVNParentPath /var/www/svn
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /path/to/passwdfile
# Require valid-user
# </LimitExcept>
#</Location>
ctrl + o 保存
恢复跟旧服务器一样的目录路径好了。
mkdir /data/www/svn
svnadmin backSvn(注:刚才的备份文件放在什么地方就加上路径) /data/www/svn/repos
然后就恢复所有的svn版本和用户名了
启动
svnserve -d -r /data/www/svn/
service httpd restart
登陆 新服务器地址/svn 就可以看到原来的svn内容了。
前提记得 apache 要先装好能登陆首页
阿里云vps可能还需要账号上设置服务器开放的端口,之前不是我申请的被坑了。试了好久,无论在服务器上怎么设置端口都不行。telnet也可以,就是不行。原来是账号上那里设置,够坑!
另外客户端如果不能提交 提示repos/db/txn-current-lock': Permission denied
记得执行命令
chmod -R o+rw /data/www/svn