我使用trac作爲我的問題跟蹤系統和svn一起使用。最近我發現提交消息也可以使用分佈式CommitTicketUpdater(出現在tracopt中)從trac 0.12(我使用的版本)開始修改票證(添加註釋,關閉它們)。讓CommitTicketUpdater在svn的trac中工作
這是安裝在Ubuntu 12.04上。我的提交後代碼非常簡單:
REV="$2"
/usr/bin/trac-admin /var/trac/proj changeset added robo $REV
其中'robo'是我的存儲庫的名稱,如trac中所定義。這實際上工作得很好;變更集以及在svn commit期間寫入的提交消息一起出現在trac中。問題不在這裏。
插件(http://trac.edgewall.org/wiki/CommitTicketUpdater)應該在提交信息中查找諸如「請參閱#22」或「修復#23」等字符串,並更新/關閉相關故障單。這在語法上非常靈活。我已經從admin web選項卡啓用了插件(和應用的更改),甚至嘗試升級(儘管不需要升級)。
我已經在我的trac.ini文件,以便配置[票]下的插件:
commit_ticket_update_envelope =
commit_ticket_update_commands.close = close closed closes fix fixed fixes
commit_ticket_update_commands.refs = <ALL>
commit_ticket_update_check_perms = false
commit_ticket_update_notify = false
,但我已經嘗試了很多其他的變化,包括一些評論,這些線。我也試着把[]放在信封選項中,但是沒有改變。
底線是,雖然添加了變更集,但票證中沒有任何變化。
我在想這可能是一個權限問題。因此,我將TRAC_ADMIN添加爲匿名,但這並沒有改變任何內容。我意識到我不確定trac如何處理linux用戶;他們不會以任何方式向Web服務器進行身份驗證......但還有其他方法可以完成嗎?
所以我已經與根,並且它的工作。所以這是關於linux權限的。雖然,我的用戶屬於'svn'組,它擁有對我的項目文件夾的全部寫入權限。但這並不足夠,但是,以作爲的工作。
我的下一個方向是將自己(和任何其他提交者)添加到sudoers中,並且沒有該鉤子操作的密碼。我已經添加了'hansz debi = NOPASSWD:/ usr/bin/trac-admin'(其中debi是服務器名稱,hansz是我的用戶名),並修改了提交後的行:
sudo -u root /usr/bin/trac-admin /var/trac/proj changeset added robo $REV
這並沒有幫助。作爲根作品,並作爲我自己 - 不是。
這是我停止嘗試,並尋求你的幫助。
爲了正確:您關於CommitTicketUpdater功能外觀的初始斷言是錯誤的。它已經存在很久了 - 也就是我已經在0.10dev中看到它了。 – hasienda