1.svnsync作用
svnsync是Subversion提供的一个用于同步版本库的工具,通过svnsync同时可以达到备份SVN版本库的目的。
2.svnsync具体操作步骤
环境说明
操作系统:Windows7
工具:cmd命令行
实现方法
首先,svnsync help命令,查阅svnsync及subcommand使用方法
1、确保源库的路径正确[Source_repo_url]
2、svnadmin create [Dest_repo_url]
确保已经创建新的目标库(若没有,需新建目标库)
3、svnsync init
初始化,建立目标库和源库之间的同步关系
命令格式 svnsync init [--username dest_name --password dest_pwd] 目标库URL 源库URL
2、svnsync sync
真正的同步
命令格式 svnsync sync 目标库URL
实例说明
以我的同步过程为实例,过程如下
说明:项目名DemoService 两个库即服务器存在同一台电脑,只不过目标库是在快盘上。
目标库[file:///X:\Home\svn\DemoService]<普通svn服务器> 或[http://192.168.5.110:8080/svn/DemoService<ApacheSVN服务器>
源库[file:///G:\MySVN-Reposity\Reposity-DemoService]
1.进入X:\Home\svn目录,创建DemoService目标库
svnadmin create DemoService
2.修改目标库的脚本pre-revprop-change
进入X:\Home\svn\DemoService\hooks\
cd X:\Home\svn\DemoService\hooks\
新建 pre-revprop-change.bat
windows下为空即可;linux下输入#!/bin/sh exit 0
再提升pre-revprop-change.bat文件权限:chmod 775/a+x pre-revprop-change.bat
3.
初始化,建立目标库和源库之间的同步关系
svnsync init --username shendw --password shendw file:///X:\Home\svn\DemoService file:///G:\MySVN-Reposity\Reposity-DemoService
如果运行正确,则===output:Copied properties for revision 0.
4.开始真正的同步
svnsync sync file:///X:\Home\svn\DemoService
===output:
Transmitting file data ..................
Committed revision 1.
Copied properties for revision 1.
Transmitting file data ..
Committed revision 2.
Copied properties for revision 2.
===OK,大功告成。
5.然后测试下目标库的代码
右键目标库,选择export,选择正确的导出路径,OK。说明库同步成功。
进入设定的Workspace,右键执行Checkout,选择url: http://192.168.5.110:8080/svn/DemoService,OK。此时项目即可看到以前的log。
遇到的问题
1.Repository has not been enabled to accept revision propchanges ?解决方案:新建 pre-revprop-change.bat,如上
2.“svnsync: Revprop change blocked by pre-revprop-change hook (exit code 255) with output...”?
解决方案:提升pre-revprop-change.bat权限,如上