svn仓库从Windows迁移到Linux

说明:本次迁移是将svn从windows平台迁移到linux平台。windows使用的是visualSvn,linux使用的是svnserv。目标是能够保留现有的仓库、用户、权限,并且让客户端最小化的更改配置。本次要迁移的仓库位于D:\repo\first,目标是/data/svn/first。默认linux上已经装好svnserv,没装好的先把软件安装好。

方案:通过svnadmin内置的dump工具导出所有数据。linux平台直接导入对应的仓库,修改对应的配置文件使得svnserv能够正常提供服务。网关机做端口转发使得外网可以访问到仓库。

操作流程:

①:在windows上命令行模式下通过svnadmin命令导出仓库

svnadmin dump D:\repo\first -F D:repofirst.dump

②:使用linux上rz命令将导出的文件传输到linux系统

rz -be

然后选择对应文件

如果提示 command not found 表示没有安装lrzsz工具,使用下面命令进行安装。

yum install -y lrzsz

③:创建与windows端名称相同的仓库

svnadmin create /data/svn/first

④:导入仓库

切换到与新建的仓库同级目录,执行load命令

cd /data/svn

svnadmin load first < /data/repofirst.dump

⑤:导入用户和用户组信息

D:\repo\htpasswd //用户账号和密码

D:\repo\first\conf\VisualSVN-SvnAuthz.ini //仓库目录的权限信息

D:\repo\groups.conf //用户组

用户迁移

将 D:\repo\htpasswd 内容 拷贝到 /data/svn/first/conf/passwd中,问题是windows中的密码是加密的,这个就没办法只能重置了。

用户组迁移

将 D:\repo\groups.conf 内容拷贝到/data/svn/first/conf/authz对应的【groups】下。

仓库目录权限迁移

将 D:\repo\first\conf\VisualSVN-SvnAuthz.ini 内容拷贝到/data/svn/first/conf/authz用户组内容后面。

⑥:修改配置文件并重启服务

vim /data/svn/first/conf/svnserve.conf

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

force-username-case = none

保存文件并重启

svnserve -d -r /data/svn/

⑦:测试使用

cd /data

svn co svn://127.0.0.1/first/dir1 --username=lee --password==lee

一般情况下是能够正常使用了,如果出现svn: E170001: Authorization failed请核对下目录有没有错误。svn的权限是根据目录来分配的,然后去找找看配置文件有没有把权限正确配置。还不行的话就检查下配置项前面是不是有空格。

猜你喜欢

转载自blog.csdn.net/weixin_38052017/article/details/90375059