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