ReviewBoard實現自動post-commit,rbt命令在svn hooks中執行出錯

ReviewBoard實現自動post-commit linux

在svn hooks中使用RBTools工具的rbt post命令向Reviewboard自動提交review request(評審請求) shell

在實踐中遇到的主要問題爲:rbt命令在linux終端能夠執行但在svn hooks中執行出錯 apache

通過不判定位、嘗試,終於解決了該問題,記錄並分享... 緩存

歡迎交流 bash

rbt命令用-d開啓debug,報錯信息以下: svn

rbt ERROR: svn Command exited with rc 1: ['svn', 'info', 'http://xxx', '--non-interactive'] 工具

rbt ERROR: svn: OPTIONS of 'http://xxx' authorization failed post

rbt ERROR: No supported repository could be accessed at the supplied url. url


由上可知,執行svn hooks的用戶無權限訪問svn spa

--non-interactive表示非交互式處理,即便svn命令執行出錯也不彈出認證輸入框

可知執行svn hooks的用戶沒有緩存svn認證信息


解決步驟:

一、獲取執行pos-commit的用戶

在post-commit文件中,echo `who am i`>/tmp/svn-post-commit.log

將執行pos-commit的用戶重定向到svn-post-commit.log文件中

得到執行pos-commit的用戶爲:apache


二、su切換到apache並將home目錄的owner改成apache

su apache出現:This account is currently not available

解決之道:

用vi看看 apache的賬號信息
cat /etc/passwd | grep apache
發現它的shell是「/sbin /nologin」,須要將起改爲「/bin/bash」

修改完畢後,保存退出

這樣再 su apache就能夠了


獲取apache的home:

能夠cat /etc/passwd | grep apache 查看

也能夠su apache後cd 或cd ~,在home目錄執行pwd查看

得出apache的home爲/var/www

將home目錄的owner改成apache:chown -R apache /var/www


三、用apache緩存svn認證信息

切換到apache賬號並切換目錄爲apache的home目錄/var/www

首先,須要手動清空.subversion/auth/svn.simple目錄下的緩存文件

其次,修改.subversion/servers文件,更改成:store-plaintext-passwords = yes

而後,在某個目錄下執行 svn co http://xxx ,會有嚮導讓輸入認證信息

這樣就將認證信息保存在.subversion/auth/svn.simple目錄下

最後,rbt命令在post-commit這個svn hooks執行成功。

相關文章
相關標籤/搜索