当前位置: 代码迷 >> 综合 >> win7 下 VisualSVN Server post-commit 钩子问题
  详细解决方案

win7 下 VisualSVN Server post-commit 钩子问题

热度:70   发布时间:2024-01-12 07:47:22.0

win7 下 VisualSVN Server post-commit 钩子问题

最近终于把ubutu给彻底给割了,换上了64位的win7,加上自己也总喜欢鼓捣些小玩意代码,纠结于windows上的svn服务器的配置,难不成要我装虚拟机使用linux来充当svn服务器么... 这也比较蛋痛

幸好发现了 VisualSVN Server 这个宝贝啊,一键安装完成,确实很爽,本来是无需配置钩子的 我直接把代码建到 虚拟主机对应的目录中不就可以了么,之前我也是这么做的,觉得很爽... 比linux爽 尤其是小乌龟确实比兔子好用

废话不说了 配置钩子吧 直接见了之后发现崩溃了 windows bat命令咋写呢

几经周折在网上看到一个demo,我是喜出望外啊:

SET REPOS=%1 SET USER=%2 SET SVN="C:\Program Files\TortoiseSVN\bin\svn.exe" SET DIR="D:\httpenv\web\xp.me1" (call %SVN% update %DIR% --username kenxu --password 111111 --non-interactive)

代码是可以使用的,不过仅限于双击的时候,其实说白了 TMD的也是 svn update 而已,但是从A处 commit 时在B处并不会更新,而且 乌龟大哥 总是给出

post-commit hook failed (exit code 1) with output:

svn: E230001: Server SSL certificate untrusted

这种错误 我就纠结了 权限我都配置了啊 从浏览器访问没有问题,从命令行访问没有问题 checkout / update 都没有问题,就是 commit 有问题.

这是如此の坑的一件事情,我根本怀疑不到是 VisualSVN Server 大哥的问题 直到我无意看了下 任务管理器 发现其对应的用户居然是 network service 当时我想死的心都有了 尼玛的

权限问题害死人啊 使用小乌龟 commit的时候 内容是传递到服务器中了,但是调用钩子的时候 却使用的是 用户"network service" 而她只是一个阉割鸡而已,根本木有传说中的写操作权限...

果断的在服务中将其登录用户改成是 当前使用的用户 (也就是users组中的用户) 然后 你懂的 ....

钩子 windows 上的 钩子 确实如此啊 


我的权限设置:

利用VisualSVN Server和hooks来实现原型提交自动同步到原型服务器

1、配置svn的Path属性,指向本地VisualSVN Server下的bin目录
2、win + r, 输入services.msc,找到VisualSVN Server,使用管理员账户登录
3、书写脚本到Post-commit hook中,内容如下

set WORKING_COPY=E:\wwwroot\项目名称\
svn update %WORKING_COPY% –username xxx –password xxx
4、配置iis,将prototype.xxx.com指向wwwroot
5、当项目中有提交的时候,就会及时更新到prototype.xxx.com在线地址

  相关解决方案