遇到的问题

这两天一直在搞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. 使用innerHTML获取HTML代码时,HTML标记属性的双引号好多都消失不见了,原来是属性值中包含空格才会保留双引号

    最近搞的一个项目中所使用的方式比较奇怪,用Label显示HTML内容,然后不断地使用JS把Label的innerHTML复制到TextBox中. 但是,昨天发现了一个问题,获取元素值的时候,有时候正常 ...

  2. C# FTP远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)

    今天用代码删除FTP服务器上的目录时候,报错:远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件). 习惯性的google,不外乎以下几点: 1.URL路径不对,看看有没有多加 ...

  3. Android开发更改应用图标无效的问题

    引子: 由于最近公司产品转战移动端,而且就要在年底前上线第一个版本,作为主工不得不立即投入到Android开发的学习中,昨天一天在家找了一些资料,看了一些视频,也试着弄了一个简单的应用. 问题: 本来 ...

  4. 【AngularJS学习笔记】00 序

    AngularJS通过新的属性与表达式来扩展HTML,有一种很形象的叫法,定义它为声明式语言. 为克服HTML在构建应用上的不足而设计! 这是它的目标. 它的官网进不去,应该是被墙了,这是goegle ...

  5. ActiveReports 报表控件官方中文入门教程 (1)-安装、激活以及产品资源

    本系列文章主要是面向初次接触 ActiveReports 产品的用户,可以帮助您在三天之内轻松的掌握ActiveReports控件的基本使用方法,包括安装.激活.创建报表.绑定数据源以及发布等内容.本 ...

  6. cURL POST command line on WINDOWS RESTful service

    26down votefavorite 7 My problem: Running windows 7 and using the executable command line tool to cu ...

  7. 泛函编程(22)-泛函数据类型-Monoid In Action

    在上一节我们讨论了Monoid的结合性和恒等值的作用以及Monoid如何与串类元素折叠算法相匹配.不过我们只示范了一下基础类型(primitive type)Monoid实例的应用,所以上一节的讨论目 ...

  8. [PHP] 自定义错误处理

    关闭掉默认的错误提示,注册自己的错误提示 Application.php <?php class Application{ public static function main(){ head ...

  9. HTML5的新特性

    HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 用于媒介回放的 video 和 audio 元素 对本地离线存储的更好的支持 新的特殊内容元素,比如 article.footer. ...

  10. spring mvc绑定复杂对象报错“Could not instantiate property type [com.ld.net.spider.pojo.WorkNode] to auto-grow nested property path: java.lang.InstantiationException: com.ld.net.spider.pojo.WorkNode”

    解决方法之一: 1.确保所有的Pojo都包含了默认的构造器: