windows下svn迁移到linux

需求:

将windows上svn迁移到linux上

linux:centos 6.10
windows svn版本:visualSVN Server Manager 3.5.7
linu svn版本:subversion-1.6.11-15.el6_7.x86_64
apache:
httpd-2.2.15-69.el6.centos.x86_64
mod_dav_svn-1.6.11-15.el6_7.x86_64

实现svn方式和http方式访问

linux下svn服务器搭建

1 svn安装并创建版本库:
#1>yum安装
 yum -y install subversion
#2>查看svn安装位置
 rpm -ql subversion
#3>创建版本库目录存放svn repo
 mkdir -p /svn/svndir
#4>创建版本库
svnadmin create /svn/svndir/test3
#创建完成后进入/svn/svndir/test3目录下可看到
drwxr-xr-x 2 root root 4096 Jul  7 14:41 conf
drwxr-sr-x 6 root root 4096 Jul  7 14:41 db
-r--r--r-- 1 root root    2 Jul  7 14:41 format
drwxr-xr-x 2 root root 4096 Jul  7 14:41 hooks
drwxr-xr-x 2 root root 4096 Jul  7 14:41 locks
-rw-r--r-- 1 root root  229 Jul  7 14:41 README.txt
2 修改配置

进入conf目录

cd /svn/svndir/test3/conf/
-rw-r--r-- 1 root root 1080 Jul  7 14:41 authz
-rw-r--r-- 1 root root  309 Jul  7 14:41 passwd
-rw-r--r-- 1 root root 2279 Jul  7 14:41 svnserve.conf

authz:负责test3库的账号权限管理,控制账号是否读写权限
passwd:负责test3库的账号和密码管理,注意密码是明文的
svnserve.conf:svn服务器配置文件
示例:

#passwd文件,注意=两边要有空格
[users]
test1 = 123456
test2 = 12345

#authz文件
[test3:/]
test1 = rw
#表示test1用户对test3库是rw读写状态
#svnserve.conf文件
[general]
anon-access = read
auth-access = write
password-db = passwd   //文件名
3 启动访问

启动:

svnserve -d -r /svn/svndir

端口:3690 注意打开防火墙
访问:
svn://192.168.1.206:3690/test3

httpd方式访问svn

1 安装apache
yum -y install httpd mod_dav_svn

用mod_dav_svn模块实现Apache服务进行访问svn仓库,mod_dav_svn是Apache和svn之间的接口

2 修改svn的httpd配置文件
-bash-4.1# cat /etc/httpd/conf.d/subversion.conf|grep -v "^#"|grep -v "^$"
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

   DAV svn
   SVNParentPath /svn/svndir
     AuthType Basic
     AuthName "Authorization Realm"
     AuthUserFile /svn/svndir/passwd
     AuthzSVNAccessFile /svn/svndir/authz
     Require valid-user


SVNParentPath /svn/svndir
指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir 版本库位置
AuthUserFile /svn/svndir/passwd
指后面使用apache的htpasswd创建的用户名密码
AuthzSVNAccessFile /svn/svndir/authz
指权限文件

3 htpasswd创建用户密码

创建用户并设置密码

-m表示MD5加密,注意-c表示创建新文件,下次添加用户就不需要添加-c参数了,否则会覆盖之前添加的账户
-bash-4.1# htpasswd -cm /svn/svndir/passwd test1
New password: 
Re-type new password: 
Adding password for user test1
查看创建的用户名和密码
-bash-4.1# cat /svn/svndir/passwd 
test1:$apr1$mdDnVgZm$1vwM5rrejKX41ag4kzlKR
帮助
-bash-4.1# htpasswd -h
Usage:
    htpasswd [-cmdpsD] passwordfile username
    htpasswd -b[cmdpsD] passwordfile username password

    htpasswd -n[mdps] username
    htpasswd -nb[mdps] username password
 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password.
 -d  Force CRYPT encryption of the password (default).
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

4 创建基于http协议访问的用户授权文件
cat /svn/svndir/authz
[test3:/]
test1=rw
5 svn目录授权
chmod 755 /svn/svndir
chown -R apache:apache /svn/svndir
6 启动
service httpd start

此时可以通过
http://192.168.1.206/svn/test3
在浏览器中输入用户名密码访问

将windows上Repositories迁移到linux机器上

直接将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建

注意

1 注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
2 svn协助与http协议
svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、httpd进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
而易用性,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供https等加密传输,用于用户信息验证的密码保存方式不是明文的)

你可能感兴趣的:(windows下svn迁移到linux)