svnserver 迁移

windows下svn的迁移:

进入svn的bin目录:cd F:\VisualSVN Server\bin

执行命令 svnadmin dump F:\Repositories\test>f:\svn_bak\test.dump

 

导入:svnadmin load F:\Repositories\test<f:\svn_bak\test.dump

 

svn进行远程备份,从一个主机被分到另一个主机:

①在要备份的机器上建立版本库(如果是本地备份,则在本地建立版本库):svnadmin create test1BackUp

②进入目标库的hooks目录,例如cd D:\Repositories\TestRepostitory\hooks
③创建pre-revprop-change.bat文件:复制pre-revprop-change.tmpl,将扩展名改为pre-revprop-change.bat,并且清空原有的所有内容,保存。

④修改文件:修改pre-revprop-change.tmpl文件,用记事本打开该文件,把文件最后的exit 1改为exit 0(原脚本的意思是如果修改的是svn:log属性,将允许修改,返回0;否则,不允许,返回1,我们要将它改为允许修改所有的属性,在脚本中直接返回0)

⑤同步初步:          
在目标机器上,打开命令提示符窗口,打开SVN服务器Bin目录,运行
svnsync init file:///D:/Repositories/test1BackUp  https://192.168.0.110/svn/Test1
(会提示输入用户名和密码,这里提供的用户名和密码是可以完全读取于https://192.168.0.110/svn/Test1的计算机密码,用户名和密码)
⑥实现同步:
在目标机器上,打开命令提示符窗口,打开SVN服务器Bin目录,运行
svnsync sync file:///D:/Repositories/test1BackUp
(如果提示输入用户名和密码,你可以在这个命令之后加上 username 、password参数
即svnsync sync file:///D:/Repositories/test1BackUp --username username --password password) 
注:
第⑤⑥两步可以直接放在一起,写入到一个批处理文件(新建记事本,将⑤⑥中的两句话放入,改记事本后缀为.bat),将该批处理文件放入SVN服务器Bin目录,双击运行即可。一会我们设定执行备份会用到这个批处理文件。 
如果是本地备份,则只需将目标URL改为本地库位置即可。(针对VisualSVN,因为一台机器上只能有一个VisualSVN服务器,所以所有版本库只能在一个目录下,才能被服务器识别,这样,备份只能备在相同目录,似乎意义不大。) 
如果版本库较大时,备份的时间会有点慢,花费几个小时或者一天也是有可能的,
备份完毕,你可以打开目标库看看,和源库是一样的。

监听多个仓库:

svnserve -d --listen-port 3690 -r /var/svndata/

 

执行svn sync命令做svn同步时遇到Failed to get lock on destination repos, currently held by ...错误

1.有正在同步的进程未完成,lock未释放;
2.上一次同步的进程异常导致中断,lock未释放。
SVN同步时,源库端会在目标库端加lock,成功同步后释放lock,但当SVN同步异常中断后,lock是不会自动释放的。这时在执行svn sync命令,就会出现如上问题;
解决方案:
在目标库上执行命令查看是否有锁:

svn proplist --revprop -r0 file:///D:/wrybackUp/jyfx

结果:

 svn:date
 svn:sync-from-url
 svn:sync-from-uuid
 svn:sync-last-merged-rev
 svn:sync-lock

删除的目标库上的0版本的属性

svn propdel svn:sync-lock --revprop -r0 file:///D:/wrybackUp/jyfx

问题2如果出现以下问题,说明仓库的id不同步:

svnsync: E170009: Repository UUID '8d5635f9-0c68-394b-8c89-446cbcdea492' doesn't match expected UUID 'ec7c5f94-dd05-944c-b6d3-1216ed0ca2bb'

查看服务端uuid和本地uuid对比:svnlook uuid F:\Repositories\test

更新本地UUID:

svnadmin setuuid G:/Repository/test 8d5635f9-0c68-394b-8c89-446cbcdea492

 

如果同步时源地址ip变更了那么执行:

svnsync init --allow-non-empty file:///D:/wrybackUp/nky  https://10.10.10.11/svn/nky

转自:http://blog.sina.com.cn/s/blog_598e4ab50102x0dl.html

查看服务端信息:

svnsync info file:///D:/wrybackUp/nky

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值