win7 下 VisualSVN Server post-commit hook failed (exit code 1) with output解决方
最近终于把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 上的 钩子 确实如此啊
@echo off "D:\Program Files (x86)\VisualSVN Server\bin\svn.exe" update "E:\www\ants_api" --non-interactive --trust-server-cert --no-auth-cache --username xxx --password xxx