使用svnsync同步subversion版本库

    我最近需要将一个已有的subversion版本库备份到本机,以往我的做法是使用svadmin dump命令,但svnadmin只能备份本机上的版本库,需要管理员权限。这次要备份的版本库在一台远程主机上,我并没有主机管理员权限,只有访问版本库的权限。经过一番摸索,终于解决了这一问题,现在把同步过程整理记录如下,供大家分享。
    我使用的是subversion 1.4中提供的svnsync命令来同步版本库。本机上装有subversion 1.4.3,运行Windows XP。以同步位于http://localhost/svn/repos/project版本库到本机为例。

第1步:在本机上新建一个空目录(本例中是E:/SVNRepo/project),然后进入该目录,创建一个新的版本库,如下所示:
E:/SVNRepo/project>svnadmin --fs-type bdb create .

注意create后有一个句号(.),表示当前目录。

第2步:为新的版本库创建pre-revprop-change钩子脚本(hook script)
    这一步非常重要,在Windows系统中,钩子脚本要以.bat作后缀。我最初就是因为没有加上该后缀,导致走了不少弯路。
    本文不详细讨论钩子脚本细节,关于钩子脚本可以参考subversion book (下载地址: http://svnbook.red-bean.com/)。简单起见,这里我们创建一个空的脚本,即在E:/SVNRepo/project/hooks目录中创建一个空的pre-revprop-change.bat 文件(创建过程很简单,不再赘述)。

第3步:运行svnsync init命令,如下所示:
E:/SVNRepo/project>svnsync init file:///E:/SVNRepo/project http://localhost/svn/repos/project
Copied properties for revision 0 (svn:sync-* properties skipped).

第4步:完成这一步后,就可以开始同步操作了,如下所示:
E:/SVNRepo/project>svnsync sync file:///E:/SVNRepo/project
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
Committed revision 4.
Copied properties for revision 4.
Committed revision 5.
Copied properties for revision 5.
Committed revision 6.
Copied properties for revision 6.
Committed revision 7.
Copied properties for revision 7.
Committed revision 8.
Copied properties for revision 8.
Committed revision 9.
Copied properties for revision 9.
Committed revision 10.
Copied properties for revision 10.
(后边的输出省略)

至此,版本库同步已经完成。
在使用新的版本库之前,还需要根据需要对版本库的访问权限等进行配置,这些内容已有很多相关讨论,这里就不再重复了。


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值