VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)

转载文档:http://blog.csdn.net/yuwenruli/article/details/8451849

系统环境:ubuntu 16.04 


Windows服务器深度中毒,从Windows换成CentOS,所以要把原服务都转移到Linux下,SVN的转移却遇到了些问题,花费了三天时间,走了不少弯路,现在总算解决了SVN迁移问题,记录下:

在Windows上我们是用VisualSVN Server作SVN服务的,Linux上是编译安装的subversion 1.7.7。
Windows 的SVN仓库在E:\SVNRepositories,Linux在 /data/svnrepos

        安装svn服务器:sudo apt-get install subversion


第1步,导出VisualSVN仓库:svnadmin dump E:\SVNRepositories\repo1 E:\repo1.dump

       [在执行该命令之前,先确定dump是否安装,安装命令:sudo apt-get install dump,   因为没有安装,耗费了好长时间……]

       注意:repo1目录,是一个含有format文件的目录,也就是一个a Subversion repository,如果有多个repository,就压缩多个,例如: svnadmin dump OtherWorks/ > ./OtherWorks.dump;该命令实在Linux环境下执行的

第2步,在Linux端create相同名称的仓库: svnadmin create /data/svnrepos/repo1

           注意:执行该命令,在文件目录下的效果就是一个repository,并创建相应的文件

第3步,在Linux端load Windows导出的库:
            cd /data/svnrepos
            svnadmin load repo1 < repo1.dump

到此为止,repo1库就导入到Linux的subversion中了,但是用户信息、权限信息还没导入(这也是我折腾很久的问题),继续:

第4步,把E:\SVNRepositories\authz 上传到 /data/svnrepos
            把E:\SVNRepositories\htpasswd 复制为 passwd 并修改后上传到 /data/svnrepos
            修改后的passwd格式如下(其实就是用户名 = 密码):
             [users]
             user1 = 123
             user2 = 456

第5步,修改仓库的/conf/svnserve.conf,使它指向第4步上传的那两个文件:
            [general]
            anon-access = none
            auth-access = write
            password-db = ../../passwd
            authz-db = ../../authz

到这里就完成了,用命令  svnserve -d -r  /data/svnrepos/ 启动subversion服务。

  • 这样做还有个问题是passwd文件原密码信息全丢失了,由于windows下使用的apache的密码文件,密码使用的MD5加密的,而在Linux下svn的passwd文件的密码是明文形式保存的。所以原来的MD5密码将不可使用。

  • 我只用了repo1这个仓库,如果有多个仓库一样步骤,分别导出导入,并修改仓库的/conf/svnserve.conf
  • 如果按照上述方法操作还是不行,启动svnserve时用  --log-file ./log.txt参数查看错误信息

测试:在浏览器里打开:127.0.0.1:3690,如果出现:
( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops atomic-revprops partial-replay inherited-props ephemeral-txnprops file-revs-reverse ) ) )

说明服务开启成功!
   在Linux环境下,下载个好用的svn客户端,比如RabbitVCS,然后访问一下:
   步骤:安装客户端:sudo apt-get install rabbitvcs-cli
              启动界面浏览器:rabbitvcs browse
              输入:svn://127.0.0.1:3690/repo 

注意:以上加粗部分,为个人经过实验整理所得!

你可能感兴趣的:(VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息))