今天試著把之前一直想做的mantis整合subversion做一個了斷,cvs+matis可以做,相信subversion也可以,尤其subversion這麼fashion 呵呵
參考[Heresy' Space]的Subversion 和 Mantis 的整合文章,整個做下來跟cvs作法類似,大概就是post-commit跟cvs的loginfo差異、Subversion需要用svnlook去查出版本資料,很快就可以上手。原本以為很順利,一下子就搞定了,沒想到一波三則:
1. Call to undefined function preg_match()
當我看到這錯誤時,根本不太相信我沒有enable pcre.so這元件,在確定extensions.ini有紀錄後,幾乎可以篤定我有enable,接下來朝向權限問題,檢查/usr/local/lib/php/20060613 跟php 所會用到的路徑,對post-commit而言,他的權限是www帳號,對於www這user最基本要有read的權限。果然看到有一個檔案沒把權限設好
2. svnlook 找不到
Heresy作者的post-commit script並沒有將svnlook程式所在位置加入路徑,需要在post-commit 前面加入
export PATH=$PATH:/usr/local/bin
3. 如何debug
假設你用shell 直接下命令,發現可以處理,大都是權限、路徑問題。
測試command:
/usr/local/bin/php /etc/script/svn2mantis.php /home/svn/test 61 | /usr/local/bin/php /usr/local/www/data/data/mantis-1.1.1/core/checkin_svn.php
這邊test 是我的svn project 所在位置 ,61為Revision
/usr/local/bin/php /etc/script/svn2mantis.php /home/svn/test 61
若command均可以成功紀錄到mantis,應該要改一下post-commit來debug了,確定到底哪邊權限變數沒抓到。
eg:
$PHP $SCRIPTF $1 $2 |$PHP $MANTIS >/tmp/out
終於搞定,提供大家參考





According to my investigation, thousands of persons all over the world receive the business loans at different creditors. Thence, there is a good possibility to receive a secured loan in every country.