遇到的问题

这两天一直在搞svn的主从备份,使用的方法是svnsync做的主从同步,同步大部分的仓库都没有什么问题很顺利的就同步完成了,不了解svnsync同步的可以看我这篇,但是在在同步2个仓库的时候遇到了很麻烦的问题,报错如下:

这个报错诡异在我前面的创建初始化版本库都没问题,从主库同步的时候一开始也很顺利,但是同步到某一个版本时就像上图一样中断了。百度了一堆都是checkout出这个错的,让 你清缓存什么的,根本文不对题。google也是没什么解决方法,看到一个说是svn版本太低有bug,



只找到了这个解决方法,我就试试了,更新了svn版本到1.8,还是200 ok,报错和之前差不多,这个方法失效。后来在网上找了很久,发现这个链接,感觉可以试试

上面的报错我个人认为是仓库的某个版本太大导致从库向主库同步失败。绕过这个报错无非是不用工具同步,直接将主库目录拷贝到从库并修改库的属性。

解决方法

下面是具体步骤:

1、将主库复制到从库

这里使用什么方法都行,可以用hotcopy,也可以用直接将主库打包发送到从库上。我用的是直接打包的方法,建议用hotcopy,因为直接打包拷贝容易被锁

tar czvf repo.tar.gz repo

2、在从库上创建初始化仓库

在这里创建初始化仓库的目的只有一个就是为了获取它的属性。

cd /tmp

svnadmin create repo

chown -R apache:apache repo

cp -p repo/hooks/pre-revprop-change.tmpl repo/hooks/pre-revprop-change

sed -i '3,65d;s/exit 1/exit 0/g' repo/hooks/pre-revprop-change

svnsync init file:///path/to/repo http://master/path/to/repo --username apache --password xxx

上面步骤做完后从库会生成uuid,repo/db/revprops/0/0等初始化信息

3、将主库打的包解压到从库的svn目录下,并修改属性

tar xzvf repo.tar.gz #解压

cp -p /tmp/repo/hooks/pre-revprop-change repo/hooks #拷贝钩子到从库

cp -p /tmp/repo/db/uuid repo/db/uuid #替换uuid

cp -p /tmp/repo/db/revprops/0/0 repo/db/revprops/0/0 #替换初始版本日志

4、从库同步主库

svnsync sync file:///path/to/repo --username apache --password xxx

同步可能会遇到如下报错:



一开始不知道是什么鬼,后来看最后一行说我fs format应该在1到4之间,但是我的如下图:



所以我把6改成4,再次执行,又遇到如下报错:



意思是说我版本号对不上,使用

svn propset --revprop -r0 svn:sync-last-merged-rev 6515 http://master/path/to/repo

同步主库的版本号,6515是你在主库打包时的版本号

在执行一次同步

svnsync sync file:///path/to/repo --username apache --password xxx

到此,svn主从同步已经完成,整个过程其实没什么难点,正常同步使用svnadmin create,init,sync三部曲即可完成,但是这里出现了特殊情况,那么就要换一种思路,先将主库整个拷贝过来,然后替换它的属性信息,让它成为从库。要替换的是uuid、pre-revprop-change和/db/revprops/0/0。

SVN同步大坑的更多相关文章

  1. windows环境下svn同步web文件[转]

    windows环境下svn同步web文件 SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统. 如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发.测试更加便捷.利用S ...

  2. SVN同步时忽略特定文件或文件夹

    在MyEclipse中使用SVN同步的时候,经常会提示一些比如.classpath等不需要同步的配置文件,可以通过设置来忽略这一部分的文件或者文件夹. 1.选择菜单Window→Preferences ...

  3. SVN同步时报错:“Previous operation has not finished; run 'cleanup' if it was interrupted”

    SVN同步时报错:“Previous operation has not finished; run 'cleanup' if it was interrupted” 这大概是SVN之前的操作没有完成 ...

  4. SVN同步

    SVN同步:1.在备份服务器上安装SVN,之后创建同名的库名2.在备机的Repositories的库文件夹下的hooks目录下,备份并修改pre-revprop-change.tmpl文件为pre-r ...

  5. 所有的工作目录 都要svn_开头,并且要进行svn同步,你能保证你不删除,你保证不了非你!

    所有的工作目录 都要svn_开头,并且要进行svn同步,你能保证你不删除,你保证不了非你! 血的代价啊~

  6. 在linux服务器centos上使用svn同步代码到项目中

    一.需求 1.在多人开发过程中代码的管理以及版本的控制是一个很重要的问题,因为在开发过程中我们可能会同时更改过某个文件或者更改过多个文件, 这会导致我们很容易发生错误.所以我们需要一个方式去管理我们的 ...

  7. eclipse svn同步过滤掉某些不需要同步的文件

    注:这里说的svn是eclipse里svn插件 默认情况下,我们在点击svn同步时,总是会把一些不需要的目录和文件也给同步了,这样我觉得很晃眼睛,所以在这里说下怎么去去掉不想同步的文件 1.默认同步下 ...

  8. SVN同步出现故障

    1.错误描写叙述    同步SVNStatusSubscribe时报告了错误,1中的0个资源已经同步    同步/frame时错误发生:Error getting status for resourc ...

  9. window、linux系统与linux服务器之间使用svn同步及自动部署代码的方法

    摘要: 在家用PC,在公司用办公电脑对一个项目的代码进行修改时,会遇到代码同步的问题.本文讲解了代码同步及自动部署的解决办法. 实现方法: 1.首先在linux服务器上和linux上安装svn(sud ...

随机推荐

  1. 【原创】Silverlight客户端发起WebRequest请求分析

    Silverlight网站部署后,客户端浏览器访问的时候会 下载 网站的xap文件包等信息,把程序代码放到本地执行,因为本地机器上安装了silverlight运行库. 所以如果silverlight前 ...

  2. Python入门笔记(19):Python函数(2):函数/方法装饰器

    一.装饰器(decorators) 装饰器的语法以@开头,接着是装饰器函数的名字.可选参数. 紧跟装饰器声明的是被装饰的函数和被装饰的函数的可选参数,如下: @decorator(dec_opt_ar ...

  3. windbg sos加载相关

    使用windbg 加载sos.dll时,经常碰到报The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.d ...

  4. WebApi传参总动员(四)

    前文介绍了Form Data 形式传参,本文介绍json传参. WebApi及Model: public class ValuesController : ApiController { [HttpP ...

  5. 重新想象 Windows 8.1 Store Apps 系列文章索引

    [源码下载] [重新想象 Windows 8 Store Apps 系列文章] 重新想象 Windows 8.1 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...

  6. php页面输出时,js设置input框的选中值

    /* 设置表单的值 */ function setValue(name, value) { var first = name.substr(0, 1), input, i = 0, val; if ( ...

  7. ahjesus js 快速求幂

    /* 快速幂计算,传统计算方式如果幂次是100就要循环100遍求值 快速幂计算只需要循环7次即可 求x的y次方 x^y可以做如下分解 把y转换为2进制,设第n位的值为i,计算第n位的权为x^(2^(n ...

  8. ASP.NET WebAPI 13 Filter

    Filter(筛选器)是基于AOP(面向方面编程)的设计,它的作用是Actionr的执行注入额外的逻辑,以达到横切注入的目的. IFilter 在WebAPI中所以的Filter都实现了IFilter ...

  9. 控制台(Console)报错:java.io.IOException: Broken pipe

    控制台(Console)输出: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Meth ...

  10. JavaScript 学习—— js获取行间样式和非行间样式

    1. 问题引入 <head> <style> #div1{ width:150px; height:200px; position:absolute; left:-150px; ...