用svnsync
同步备份任意两个svn
版本库 20100706
如用svnsync
同步备份两台机器的svn
。
要同步的项目名称:svn_repos
svn
版本库1
。4
以上
源目录: svn://192.168.108.254/svn_repos
同步目标目录: http://
目标IP:8080/svn/svn_repos/
方法:
1.
如果目标目录
存在相同的项目,请先清除,重新建立空项目
svnadmin create svn_repos
2.
在 192.168.120.190
(
目标目录
)->
cendyn
目录下hooks
目录下,建立
pre_revprop-change.bat
全部内容只有一行:exit 0
如果用拷贝同目录下的pre_revprop-change.tmpl
则必须删除最后三行的内容或替换为只有一行:exit 0
不然下面初始化同步的时候,将停顿.
3.
执行 初始化(在目标目录
)
svnsync init http://
目标IP:8080/svn/svn_repos/ svn://192.168.108.254/svn_repos
即svnsync init
目标库 源库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码正确后,显示
Copied properties for revision 0.
4.
执行同步(目标目录
)
svnsync sync
http://
目标IP:8080/svn/svn_repos/
5.
更新同步
windows
下:
在源库的hooks
下面,添加post-commit
脚本
可拷贝post- commit.tmpl->post- commit.bat
linux
下:
在源库的hooks
下面,添加post-commit
脚本
可拷贝post-commit.tmpl
即
cp post-commit.tmpl post-commit
然后
把 post-commit
中,最后两行替换为
svnsync sync
--non-interactive http://192.168.108.187:8080/svn/svn_repos/ --username edison
--password edison
即提交更新后,即执行同步命令,不进行交互
把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
正确解释也会重复出现该错误
.
分享到:
相关推荐
Linux系统,使用SVN自带svnsync进行异地同步增量备份
利用svnsync同步SVN版本库,将之前主库上的SVN数据迁移到VisualSVN上,然后在实现版本库的远程自动备份,版本库备份到另一台机器上。
SVNsync配置库同步说明
在/svn下面创建脚本svnsync.sh crontab格式说明: 分 时 日 月 星期 用户 执行命令 5 * * * * ls ——指定每小时的第5分钟执行一次ls命令 30 5 * * * ls ——指定每天的 5:30 执行ls命令 30 7 8 * * ls ——指定每...
svn服务用svnsync命令双机热备
SVN版本库备份与恢复文档(是doc文档)
版本控制最关键的一件事是保证数据的安全性,不能因为磁盘损坏,程序故障造成版本库无可挽回的错误,为此必须制定较完备的备份策略。在Subversion中,我们有三种备份方式:完全备份,增量备份和同步版本库。
svn 备份 可以和hook脚本结合,每有更新就可以同步到备份服务器中
用于svn同步备份,包括完全备份及增加备份日志
实现SVN的代码的同步备份,提交代码时,备份机同步更新。
SVN从1.4版开始支持两个repository之间的同步,但这种“同步”只是单向的,只能把repository-1的数据同步到repository-2中,实际上repository-2只是一个镜像而已。 在我们的项目中,开发团队分别在两个不同的地点...
SVN_自动同步备份环境搭建笔记
SVN自动同步备份环境搭建笔记.pdf
linux下 svn备份与同步
1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行); 2)SVN增量备份(每日备份1次,由windows计划来调度执行)。 2. SVN备份流程 上述2类备份分别进行的自动备份流程如下: 1)通过windows定时...
svn代码库如何备份到本地
SVN完全备份和增量备份 近存放项目的服务器要换,所以要对SVN项目进行备份,有几个项目的版本 ... SVN备份操作
SVN自动同步备份环境搭建笔记[整理].pdf
这是我用git做版本管理时最常用的做法,但是用svn却不是很好,首先,svn做一个分支太难了;其次,我需要用一些中间代码在版本库中做一个大家都可以看到的分支,这太ugly了。 基于上述原因,我写了一个脚本,它可以...
1、 全局备份 svnadmin dump /data/svn/repository > /data/repository-backup.dump #全局备份...使用工具上传备份文件至新服务器本地,这里假设上传至根目录。 svnadmin load /data/svn/repos/newproject 导入备份文件