使用svnsync实现已有版本库的镜像
svn不支持分布式开发,所以把svn版本库保存在一台服务器上是不安全的。制作一个镜像svn版本库有多种方式,我采用subversion自带的svnsync程序。
源版本库路径:svn:ip/svn/project
镜像版本库路径:svn:ip/svn/backup
建立镜像版本库
1
2
3
4
|
如果目标目录存在相同的项目,请先清除,重新建立空项目
svnadmin create backup
在mu目录下hooks目录下,建立
pre_revprop-change.bat 全部内容只有一行:exit 0
|
初始化镜像库
1
|
svnsync init svn:ip/svn/backup svn:ip/svn/project |
同步
1
2
|
# 同步也使用这段指令 svnsync sync --non-interactive svn:ip/svn/backup
|
解锁
1
2
|
# 删除属性 “svn:sync-lock” 于版本库版本 0 svn propdel svn: sync -lock --revprop -r 0 svn:ip/svn/backup
|
修改原始版本库的地址
如果原始版本库的地址改变了(比如说换了域名或者IP地址),在svn中可以使用 svn relocate
来实现,但在svnsync中,就必须用propset来实现了,具体指令如下:
1
2
3
4
5
6
7
8
|
svn propget svn: sync -from-url –-revprop -r 0 svn:ip/svn/backup
# 这个操作会显示原始版本库的地址(假如你忘了原始地址就很有用) # http://192.168.0.100/svn/project # 设置新的版本库地址 svn propset svn: sync -from-url –-revprop -r 0 http: //10 .1.1.9 /svn/project svn:ip/svn/backup# 再次同步 svnsync sync --noninteractive svn:ip/svn/backup
|