用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器
如用svnsync 同步备份两台机器的svn 。(就以linux服务器到windows服务器为例子)
要同步的项目名称:source_svn
svn 版本库1 。4 以上
源目录: svn://192.168.16.199/source_svn
同步目标目录: http:// 目标IP:8080/source_svnbak
方法:
1.如果目标目录存在相同的项目,请先清除,重新建立空项目
2.在目标服务器中建立svn版本库source_svnbak svnadmin create source_svnbak
(svnadmin是svn的命令如果没有将svn目录放到环境变量需要在其目录里面使用该句若是windows可以直接点击右键创建svn)
3.需要在hooks中将pre_revprop_change.tmpl改为pre_revprop_change.bat并将内容清空然后输入exit 0
4.执行初始化
svnsync init svn://目标:ip:端口号/source_svnbak svn://192.168.16.199/source_svn
(执行到这一般会出现一个问题 svnsync: 认证失败)解决:需要把源文件source_svn中的conf拷贝到目标source_svnbak中替换conf文件
如果成功他会提示你输入用户名和密码(注:第一个是Administrator这个我觉得不用管随便输入,确定后才是你svn中填写的用户名和密码在conf中的文件有配置)
正确后,显示
Copied properties for revision 0.(复制版本 0 的属性。)
5
执行同步
svnsync sync svn://目标ip和端口号/source_svnbak --username xxxx --password xxxx(一般端口号不用写除非端口号不是默认安装过的需要写,用户名和密码都在conf中有配置)
即svnsync sync 目标库
正确执行后,显示
复制版本号和提交数据等信息
6.更新同步
在source_svn的hooks下面,添加post-commit 脚本
可拷贝post-commit.tmpl
即
cp post-commit.tmpl post-commit
然后
把 post-commit 中,最后两行替换为
svnsync sync --non-interactive svn://目标ip:(端口号)/source_svnbak --username xxx --password xxx
即提交更新后,即执行同步命令,不进行交互
把post-commit 设为755权限。
ps:
如果post-commit脚本出错,或者无可执行权限,在提交更新时会报错
错误处理 :
在源端 , 同步用的帐号需要有读权限 , 在目的端同步帐号需要读写权限 . 权限分配合理后 , 基本上就不会出现其他错误 .
如果出现以下列出的之外的错误 , 请先检查一下 svn 服务是否可正常使用 .
比较常见的错误是 :
# svnsync initialize DEST_URI SRC_URI --username cax --password password_for_cax
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged
这是由于系统中没有 pre-revprop-change 钩子脚本导致的 , 该文件在版本库的 ~/hooks/ 下 , 只需拷贝一份即可 .
cp -pf hooks/pre-revprop-change.tmpl hooks/pre-revprop-change
如果是 windows 系统 , 还需要清空 pre-revprop-change 的内容 , 并添加后缀为 pre-revprop-change.bat
在批处理文件中 , Linux 下 shell 中注释符 # 不能被 batch 正确解释也会重复出现该错误 .
来源:http://blog.csdn.net/stuartjing/article/details/6796763
用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器的更多相关文章
- 工作随笔——使用svnsync实时备份SVN版本库
前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...
- 使用svnsync实时备份SVN版本库
前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...
- 在windows上自动备份SVN版本库及定时删除
下面的脚本是在windows SVN的备份策略,采用的是hotcopy的方法 方案一: 1.先创建一个fullBackup的脚本:fullBackup.bat echo off rem Subvers ...
- SVN版本库备份和恢复
1.版本库备份 1.1.svnadmin dump方式备份 此方法借助的是Subversion官网推荐的svnadmin dump备份方式,它的优点是比较灵活,既可以进行全量备份又可以进行增量备份,并 ...
- svn版本库更新后自动同步到www
注意:www目录一定要用SVN服务器 checkout出Repositories的代码 步骤: (1)新建www根目录 mkdir -p /data/www/lehuo (2)在www根目录下检出(c ...
- SVN版本库的备份及迁移
备份某个版本库:打开控制台窗口 1.备份某个版本库: svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile eg:svnadmin du ...
- python实现备份gitlab版本库并更改文件名
脚本的功能是实现备份gitlab版本库,并修改备份后的文件名,成功后发送邮件至相关负责人,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- impo ...
- TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库
TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库 SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server ######## ...
- SVN版本库(访问权限)配置实例笔记
http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...
随机推荐
- wamp服务下部署禅道或其它项目时访问缓慢的解决办法
原因其实很简单: WAMP服务默认是不支持外网访问的,如果公司内外网在一起就会引起缓慢甚至超时的问题,直接修改WAPM的配置文件让它可以访问外网即可解决问题. 解决的方法/步骤 1.解决办法: ...
- js 毫秒换算成秒
$scope.formatSeconds = function (value) { var reg = /^(-|\+)?\d+$/; if (reg.test(value)) { var hour ...
- html特殊符号
1 ´ ´ © © > > µ µ ® ® & & ° ° ¡ ¡ » » ¦ ¦ ÷ ÷ ¿ ¿ ¬ ¬ § § • • ...
- Leetcode Perfect Square
这道题首先想到的算法是DP.每个perfect square number对应的解都是1.先生成一个n+1长的DP list.对于每个i,可以用dp[i] = min(dp[j] + dp[i-j], ...
- VS中的代码段功能
1.前言 开发人员不喜欢打字.如果你希望提高开发人员的生产力,减少键入的数量,这也同时减少打字稿的数量以及因此产生的编译器错误,这些都极大分散了开发人员的注意力.代码重用是开发人员收集代码的另一个原因 ...
- Windows 8及以上系统安装好SQL Server 2008之后找不到SQL Server配置管理器的问题
直接的方法: 打开[运行]->输入[C:\Windows\SysWOW64\mmc.exe /32 C:\Windows\SysWOW64\SQLServerManager10.msc]即可. ...
- Search and Replace搜寻与替换工具
一个功能强大的搜寻与替代工具.它可以在同一部硬盘中对所有的文件进行搜寻与替换的功能,也可以对Zip文件中的文件做搜寻,支持特殊字符条件表达式搜寻,或是以脚本文件(Script)做搜寻替换工作,也可以以 ...
- PHP serialize && unserialize Security Risk Research
目录 . 序列化的定义 . serialize:序列化 . unserialize:反序列化 . 序列化.反序列化存在的安全风险 . Use After Free Vulnerability -] . ...
- squid清除缓存
客户经常要求清除缓存 由于CDN后台只能支持单个url的 所以目录级别的只能用脚本 example:清除 www.123.com 下所以的缓存 #!/bin/bash TODAY=`date +%Y ...
- java编译错误 程序包javax.servlet不存在javax.servlet.*
java编译错误 程序包javax.servlet不存在javax.servlet.* 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax. ...