用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
正确解释也会重复出现该错误
.
分享到:
相关推荐
同步仓库则通过 `svnsync sync` 命令实现,它将更新本地仓库以反映远程仓库的最新变化。这个命令需要定期执行以保持同步。 对于svn仓库的备份,有两种主要方法:压缩备份和不压缩备份。使用 `svnadmin dump` 命令...
在本例中,`svnsync.sh`是执行同步的shell脚本,它会定期运行,确保主服务器和从服务器的版本库保持一致。 2. **配置过程**:在开始同步前,需要在主服务器上初始化同步,然后在从服务器上配置为同步源。这通常涉及...
使用svnsync备份很简单,步骤如下:首先确保版本库建好并且已经与Apache发生联系。然后,使用同步命令进行备份。具体命令可以根据实际环境和需求进行设置。 知识点五:遇到的问题与解决方法 在实施svn远程备份的...
`svnsync`是SVN 1.4及以上版本提供的一个工具,用于创建和维护SVN库的远程镜像。该命令支持单向镜像,即主库的变化能够被镜像到备用库中,但反过来不行。 ##### 操作步骤 1. **建立仓库** - 进入指定目录,使用`...
- svnsync:可以用于同步两个版本库,比如为了备份或负载平衡。命令可以同步整个版本库或仅同步特定版本之间的变化。 3. SVN钩子(Hook)脚本: - 钩子脚本是在版本库中某些事件发生时自动执行的脚本,如提交...