昨天配置了一下午svn hooks
本了很简单的一件事情,却因为 一个https弄的异常难搞。
在hooks的目录下,编辑 post_commit之后,始终无法updae,原因是,需要ssl验证主机。
在网上查看了下,用了svn ls https://****之后,弹出需要确认,输入p,输入密码之后还是不行。
于是,我怀疑是用户的是。svn+apache 做的https协议。应该是用apache用户跑的吧。
可是apache用户我设置的是没有登陆权限的。怎么办?
只好usermod 修改,成为可登录用户。从/etc下面某个目录生成原始的bash环境配置文件。
用apache用户进行验证,保存验证信息,保存密码。还是不行。还是报错。
在老外的网站上发现了两个参数。
--non-interactive --trust-server-cert
然后呢。需要输入p的那个报错没了,剩下最后一行,错误信息:post-commit Host key verification failed. 验证失败。哈哈哈,还是失败。无语了。
最后决定放弃了,不用hooks的脚本跑了。
后来无意间发现有人这么做:
/usr/bin/ssh -lT [email protected] "/usr/bin/svn up /home/****"
/usr/bin/ssh -lT [email protected] "chown apache:apache /home/**** -R"
我再试试吧,不在本机弄了,直接同步到别的机器上。
做了ssh-key免登录之后,抱了个UTF-8的错误。
有人说在apache的配置文件加上:
SVNUseUTF8 on
不知道我写的不对还是就是不行,失败了。
svn客户端post-commit时,出现如下错误
post-commit hook failed (exit code 1) with output.
[Error output could not be translated from the native locale to UTF-8.]
解决方法:
其实上述错误是一个错误,执行post-commit脚本时文字编码造成的
在版本库hooks/post-commit文件中
原来是#export LANG=zh_CN.GBK
修改为export LANG=en_US.UTF-8即可(svn服务器默认是utf8)
后来照着上面的改,成功了。
暂时写到这。怎么让hooks识别commit -m "****" 里面的***?然后根据***进行同步命令多好啊?
继续努力。