1,需求说明,Linux做为主库(A),Windows做为本地备份库(B),要求天天将Linux库中的代码备份到本地web
2,B机器上安装svn服务端svn
3,spa
4,建立一个新的svn仓库(仓库必须是新建立的并且不能有提交,更新等操做)3d
进入仓库的hooks文件夹,复制pre-revprop-change.tmpl 文件,重命名为pre-revprop-change.bat ,编辑pre-revprop-change.bat文件 删除所有内容,输入exit 0 保存code
五、执行同步要使用到两个命令
一、svnsync init
初始化,创建目标库和源库之间的同步关系
命令格式 svnsync init 目标库URL 源库URL
二、svnsync sync
真正的同步
命令格式 svnsync sync 目标库URLblog
所有操做以下图所示同步
C:\Users\Administrator>svnsync init file:///E:\lywebsite svn://39.105.111.20/lywit
Ebsiteio
C:\Users\Administrator>svnsync sync file:///E:\lywebsiteast
执行svnsync init 时先会让你填写administrator的密码,随便输入就行
接下来输入svn的帐号密码
最后执行svnsync sync ,这一步有可能也会让你输入用户名密码
可以使用下面的格式,带上用户名和密码
svnsync sync file:///svn/proj1 –username username –password password
问题:
1. Repository has not been enabled to accept revision propchanges
解决方法:
Linux:
在hooks下新建pre-revprop-change文件,内容是
#!/bin/sh
exit 0;
Windows:
在hooks下新建pre-revprop-change.bat文件, 内容为空便可
2. Revprop change blocked by pre-revprop-change hook (exit code 255) with no output
解决方法:
Linux:
chmod a+x pre-revprop-change
3,svnsync: Destination HEAD (593) is not the last merged revision (592);
have you committed to the destination without using svnsync?
解决方法
svn propset --revprop -r0 svn:sync-last-merged-revision 593 file:///home/test/svn/test