svn windows数据迁移linux,windows 下 svn 多版本库迁移至 linux

多版本仓库建立

在指定目录建立仓库保存总目录,本文示例目录设定为:/usr/local/svn/svnrepos

mkdir -p /usr/local/svn/svnrepos

2、在总目录中创建两个仓库的文件夹,以及使用命令创建版本库

mkdir -p /usr/local/svn/svnrepos/warehouse1

mkdir -p /usr/local/svn/svnrepos/warehouse2

svnadmin create /usr/local/svn/svnrepos/warehouse1

svnadmin create /usr/local/svn/svnrepos/warehouse2

3、进入 warehouse1 目录下的 conf 文件夹。将其中的 authz 与 passwd 文件复制到 svnrepos 目录下

cd /usr/local/svn/svnrepos/warehouse1/conf

cp authz ../../

cp passwd ../../

4、修改 warehouse1/conf 下的 svnserve.conf 文件,将其中的 passwd 文件制定与 authz 文件制定进行修改,其他配置按正常单 svn 配置。(warehouse2 同样设置一遍)

3fe19fa63356e9c1f00c76b9cc1549e0.png

5、修改复制出来的/svnrepos 目录下的 passwd 文件与 authz 文件

passwd 文件:设置账号密码

5c1ea561c348268d2f1e6659d27f7a31.png

authz 文件

390a01b29414faead94a4bf37e2d398b.png

6、启动 svn 服务

svnserve -d -r /usr/local/svn/svnrepos (这里目录配到总目录,不是仓库目录)

ps -ef|grep svnserve (查看服务端口号)

数据迁移

在 Windows 上我们是用 VisualSVN Server 作 SVN 服务的,Linux 上是编译安装的 subversion 1.7.7。

Windows 的 SVN 仓库在 E:\SVNRepositories,Linux 在 /data/svnrepos

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

第 2 步,在 Linux 端 create 相同名称的仓库

第 3 步,在 Linux 端 load Windows 导出的库:

cd /data/svnrepos

svnadmin load repo1 

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

第 4 步,把 E:\SVNRepositories\authz 上传到 /data/svnrepos

把 E:\SVNRepositories\htpasswd 复制为 passwd 并修改后上传到 /data/svnrepos

修改后的 passwd 格式如下 (其实就是用户名 = 密码):【由于 windows 的用户密码是 mdb 加密方式,需要更改下】

[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 服务。

增量迁移

有时因版本库数据量大,版本较多时,迁入会报错(svnadmin: E200003: 转存流中内容数据过早结束),因此采用增量迁移方式

①查看当前旧版本库最新的版本号是多少

在命令提示符窗口,打开库所在目录

执行 svnlook youngest F:\Repositories\研发中心

例如返回版本为 36000

②分批增量导出版本库内容

svnadmin dump F:\Repositories\研发中心 -r 0:12000 > F:\repo1.dump

导出第一个文件,版本号从 0 到 12000 的修订版本

svnadmin dump F:\Repositories\研发中心 -r 12001:24000 --incremental > F:\repo2.dump

导出第二个文件,版本号从 12001 到 24000 的修订版本

svnadmin dump F:\Repositories\研发中心 -r 24001:36000 --incremental > F:\repo3.dump

注:三个命令中第 2,3 个命令多了一个--incremental 的参数,使其采用了增量的方式导出,

③分批导入版本库文件

注:打开要导入的版本库所在目录,例如 cd E:\Repositories。

首先导入 dumpfile1,然后是 dumpfile2,dumpfile3

依次执行

E:\Repositories\svnadmin load newRepository < dumpfile1

E:\Repositories\svnadmin load newRepository < dumpfile2

E:\Repositories\svnadmin load newRepository < dumpfile3

可能会出现的问题,提示错误:版本库文件已经存在。请确认前边导出时,是否使用了--incremental 参数。

说明:这里我们是在命令提示符窗口下进行的。同样的,我们也可以按照方案 1,采用写批处理文件的方式。

注:要根据自己的 svn 安装目录,和库目录写命令,例如:

C:\Program Files\VisualSVN Server\bin\svnadmin load D:\Repositories\newRepository < E:\dumpfile1

再记录下禅道迁移的方法

windows 迁移到 linux( xampp 迁移到 zbox)

新的服务器,安装相同版本的一键安装包,确认可以正常访问:http://服务器 ip:端口/zentao/;停止服务

/xampp/zentao/www/data/upload/1/ 目录下内容拷贝到 /opt/zbox/app/zentao/www/data/upload/1【附件】

/xampp/mysql/data/zentao/ 目录下文件拷贝到 /opt/zbox/data/mysql/zentao/ 下面【数据库物理文件】需要停止服务迁移

/opt/zbox/zbox stop

/opt/zbox/zbox -mp 3307

/opt/zbox/zbox -ap 82

/opt/zbox/zbox start

端口号,根据需要变更(mp 是 mysql 端口; ap 是 apache 端口)

4、配置开机自动重启禅道服务

把/opt/zbox/zbox restart 命令添加到/etc/rc.d/rc.local 中去

windows 迁移到 windows(xampp 迁移)

集成面板左上角,服务,卸载服务,退出面板;xampp 重命名为 xampp_bak

安装相同版本的一键安装包,确认可以正常访问:http://服务器 ip:端口/zentao/ ;停止服务

/xampp_bak/zentao/www/data/upload/1/ 目录下内容拷贝到 /xampp/zentao/www/data/upload/1【附件】

/xampp_bak/mysql/data/zentao/ 目录下文件拷贝到 /xampp/mysql/data/zentao/ 下面【数据库物理文件】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值