svnync svn同步

项目需求要实现开发环境与测试环境的svn两台服务器同步。

所以网上找了点资料去操作实现,单向同步,源目录向目标目录同步。


两台都是windows,

源目录:file:///F:/Repositories/app
目标目录:https://192.168.1.15/app

1.首先目标目录机器上创建 app这个svn(通过VisualSvn server 上直接创建或者命令 svnadmin create app --- 未试过命令)
然后在 目标目录机器上 *****/app/hooks目录中新建
pre_revprop-change.bat 全部内容只有一行:exit 0

2.然后
执行 初始化
svnsync init https://192.168.1.15/app  file:///F:/Repositories/app
即svnsync init 目标库 源库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码
正确后,显示
Copied properties for revision 0.

3. 执行同步
svnsync sync   https://192.168.1.15/app
即svnsync sync 目标库
正确执行后,显示
Committed revision 1.
Copied properties for revision 1.
.......

4.在目标机器上hooks中创建
post-commit.bat 文件
输入
@echo
set SVN_HOME="C:\Program Files (x86)\Subversion\bin"
%SVN_HOME%\svnsync sync  --non-interactive https://192.168.1.15/app --sync-username 用户名 --sync-password 密码  --config-dir F:\Repositories\svnsynccertauth

并且给F:\Repositories\svnsynccertauth文件夹属性安全中 增加NETWORK SERVICE用户对该文件夹的控制权主要是读写

然后手动执行一次
会出现询问 你是否保存 https证书信息
(R)eject, accept (t)emporarily or accept (p)ermanently?
选择p。

再执行一次检查看看 是否还会询问

后面每次源机器svn被更新后 都会触发执行 post-commit.bat 文件去同步 https://192.168.1.15/app 这台svn服务器。

红色--config-dir 是指证书信息保存位置

 post-commit hook failed (exit code 1) with output:
svnsync: E230001: Unable to connect to a repository at URL 'https://121.40.210.188/svn/JJApp'
svnsync: E230001: Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted
之前因为未指定  --config-dir F:\Repositories\svnsynccertauth 
每次触发执行post-commit.bat 是以NETWORK SERVICE用户去执行,但是该用户没有因为没有默认--config-dir 指定文件夹的读取权限,导致获取不到https的证书信息









你可能感兴趣的:(svnsync)