使用svnsync同步svn

使用svnsync实现已有版本库的镜像
svn不支持分布式开发,所以把svn版本库保存在一台服务器上是不安全的。制作一个镜像svn版本库有多种方式,我采用subversion自带的svnsync程序。

源版本库路径:http://192.168.0.100/svn/project
镜像版本库路径:/var/svn/project

  • 建立镜像版本库

svnadmin create /var/svn/project
# 创建钩子
cp /var/svn/project/hooks/pre-revprop-change.tmpl /var/svn/project/hooks/pre-revprop-change
# 给予钩子运行权限
chmod a+x /var/svn/project/hooks/pre-revprop-change
# 编辑pre-revprop-change钩子,将最后一行的 `exit 1` 改为 `exit 0`
vim /var/svn/project/hooks/pre-revprop-change
  • 初始化镜像库

svnsync init file:///var/svn/project/ http://192.168.0.100/svn/project
  • 同步

# 同步也使用这段指令
svnsync sync --non-interactive file:///var/svn/project
  • 解锁

# 删除属性 “svn:sync-lock” 于版本库版本 0
svn propdel svn:sync-lock --revprop -r 0 file:///var/svn/project/
  • 修改原始版本库的地址

如果原始版本库的地址改变了(比如说换了域名或者IP地址),在svn中可以使用 svn relocate 来实现,但在svnsync中,就必须用propset来实现了,具体指令如下:

svn propget svn:sync-from-url –-revprop -r 0 file:///var/svn/project/
# 这个操作会显示原始版本库的地址(假如你忘了原始地址就很有用)
# http://192.168.0.100/svn/project

# 设置新的版本库地址
svn propset svn:sync-from-url –-revprop -r 0 http://10.0.0.9/svn/project file:///var/svn/project/
# 再次同步
svnsync sync --noninteractive file:///var/svn/project/
 
时间: 2024-08-09 10:42:40

使用svnsync同步svn的相关文章

用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 svnadmi

svn利用svnsync同步时出现问题解决

公司SVN的备份用的是SVNSYNC实时同步备份,今天开发在提交代码的时候发现报错,但是能提交成功,错误信息如下: 登陆svn服务器,手动执行同步,发现在服务器报如下错误: "Failed to get lock on destination repos, currently held by 'XXXXXXX:b3c1ff73-e835-420a-a9d2-9321c86fe40f' 这是因为备份机上svnrsync被锁了,同步不过去了. 解决办法:在备份机上执行 svn propdel svn

linux下svnsync同步版本库配置

svnsync可以方便的把另一个源svn版本同步到指定版本库中,为多版本库应用提供方便. 示例: (版本库所存目录  /svn/  下) 源版本库:  svn://196.168.0.1/testA      同步用户:sync_source 密码:123456 目标版本库: svn://196.168.0.2/testB    同步用户:sync 密码:123456 源版本库用于开发编辑提交等应用,目标版本库只能可读用于上线备份等应用. 进入目标服务器: 编辑sync同步必要hooks脚本pr

svnsync同步版本库

假设有一个主版本库(Master)需要同步到另外一个服务器的新库(Mirror)当中以达到备份的效果. 主(Master): 将要通过svnsync被同步的活动读/写版本库.镜像(Mirror): 将要与master通过svnsync同步的只读版本库.Subversion 1.4发布之后,svnsync工具就成了标准Subversion的一部分,可以用"一个可以维护只读Subversion镜像所有功能的工具"描述, 从它的文档中理解它的目的非常简单,为什么在企业中维护一个镜像版本库非常

svn sync主从同步学习

svn备份的方式有三种: 1svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制. 缺点是:如果版本比较大,如版本数增长到数万.数十万,那么dump的过程将非常慢:备份耗时,恢复更耗时:不利于快速进行灾难恢复. 个人建议在版本数比较小的情况下使用这种备份方式. 第二种svnadmin hotcopy原设计

SVN库实时同步设置

为了安全起见,SVN服务器除了做定时全量备份和增量备份以外,如条件允许,可做实时备份. 这需要2台机器,一台是master server,另一台做mirror server.master做主服务,mirror不对外服务或设置只读(除了同步账号可写外) 另外如果master负载比较高,可以把一些只读的应用设置为从mirror读取,例如Jenkins编译.(需保证实时同步一直工作) 步骤如下(这里以linux sever为例): 加下面代码段到pre-revprop-change以允许svnsync

[记录]CentOS搭建SVN服务器(主从同步)

CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/usr/bin/svnversion --version2.创建svn版本库目录 #mkdir -p /var/svn/svnrepos3.创建版本库 #svnadmin create /var/svn/svnrepos4.进入/var/svn/svnrepos/conf目录 1)authz文件是权

svn 同步hook

hook 目录下 cp pre-revprop-change.tmpl pre-revprop-change chmod a+x pre-revprop-change 同步代码初始化 sudo svnsync init svn://132.232.180.227/Design svn://162.211.227.27/Design --username linfan --password lfxxxxxxxx svnsync sync svn://132.232.180.227/Design 

svn服务器的搭建以及利用svn hook与web根目录同步

svn原理图示 2.SVN服务器的搭建 1.查看是否安装svn   rpm -qa | grep subversion   2.安装 yum install subversion 3.测试是否安装成功   /usr/bin/svnserve --version   如提示以下内容,说明已安装成功   --------------------------------------   svnserve,版本 1.6.11 (r934486)      编译于 Apr 11 2013,17:28:04