SVN从windows迁移到linux

因为之前用的是Win Server 2012 跑的VirtualSVN Server 服务。现在要迁移到Linux服务器上来,所以在这里记录一下迁移过程。

SVN + Apache 搭建

  • Centos7
  • Svnserver 1.8

首先目标机器肯定是要安装SVN,这里要注意一点的是目标机器SVN版本一定要和之前的SVN版本一致。

因为Centos7默认的Yum源SVN版本是1.7,而Windows上面这里是1.8。所以这里要添加一个1.8的SVN Yum源。

Svn安装

1
2
3
4
5
6
7
8
9
10
sudo tee /etc/yum.repos.d/wandisco-svn.repo << EOF
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/7/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
EOF
yum clean all
yum install httpd subversion mod_dav_svn -y
svn --version

Apache 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
tee /etc/httpd/conf.d/subversion.conf << EOF
# WANdisco Subversion Configuration
# For more information on HTTPD configuration options for Subversion please see:
# http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html
# Please remember that when using webdav HTTPD needs read and write access your repositories.

# Needed to do Subversion Apache server.
LoadModule dav_svn_module modules/mod_dav_svn.so
# Only needed if you decide to do "per-directory" access control.
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>
DAV svn
SVNParentPath /svn/
AuthType Basic
AuthName "SVN Repo"
AuthzSVNAccessFile /svn/authz
AuthUserFile /svn/htpasswd
Require valid-user
</Location>
EOF
service httpd start
systemctl enable httpd

SVN 迁移

代码迁移

因为我之前是用hotcopy备份的。所以直接把hotcopy备份的文件打包之后通过XFTP传到目标机器

配置迁移

在VittualSvn Server 的 Repositories root 会有SVN的用户密码文件以及分组文件。我们同样把它拷贝的目标机器

  • htpasswd 保存的用户名和密码
  • groups.conf 保存的分组信息

还原

1
svnadmin hotcopy yourproject /svn/yourproject

用户和分组信息还原

1
2
cp htpasswd /svn/
cp group.conf /svn/authz

启动SVN

1
2
svnserver -d -r /svn
echo "svnserver -d -r /svn" >> /etc/rc.local

关于SVN权限迁移

目前还不知道如何把Windows VirtualSvn server 的权限迁移过来,所以迁移过后权限需要重新编辑authz这个文件重新设置

这个时候就可以在浏览器访问到你的SVN了

http://your-host:/svn

用户名和密码和之前的一样

参考:
http://151wqooo.blog.51cto.com/2610898/1256188/
https://my.oschina.net/u/206356/blog/287635
http://home.51.com/hewei732099/diary/item/10054557.html

坚持原创技术分享,您的支持将鼓励我继续创作!