天天看點

Trac & Redmine選型

原文位址:http://blog.163.com/guaiguai_family/blog/static/2007841452012228111424172/

玩了下這兩個玲珑的項目管理工具,集 wiki、bts、source browser 于一身的 web 應用。

Redmine 沒出來的時候,Trac 一枝獨秀,頗得小衆歡心,我也曾經淺用過,做管理者比較悲催,幹點嘛管理操作都是得指令行裡操作,不知道作者出于什麼考慮,另外 Trac 官網的 wiki 比較亂,過期的資訊、不推薦的做法全都混在正文裡;做 Trac 的使用者是挺爽的,界面清爽,wiki 裡能友善的使用 ticket 号碼以及 svn 版本号,內建的感覺挺好,有點貪心不足的是覺得 wiki、ticket 功能少了些,沒辦法,全面之後難以獨專一面。比較有意思的是 Trac 不支援通路遠端 Subversion 庫,這個問題已經懸着八年了,見 http://trac.edgewall.org/ticket/493 。

時至今日,這個小衆市場上 Redmine 分了很大一杯羹,頗有好評。跟 Trac 相比,Redmine 的管理功能有 Web UI 可操作,對管理者友好了很多,直接支援多種 VCS 比如 Subversion、Mercurial、GIT、Bazaar,不像 Trac 預設隻支援 Subversion。除了跟 Trac 一樣支援 wiki、ticket、timeline 特性之外, Redmine 還有 forrum、calendar、gantt,後兩個特性很友善看項目進展情況,看起來挺實用的。要說缺點的話,Redmine 官方的文檔、論壇資訊也比較過時,插件比 Trac 少很多,冷啟動很慢(重新開機動 Apache 後第一次通路,或者閑置一段時間後再通路,似乎 FastCGI 模式下 ruby 程序會過一段時間自動退出),得花個十來秒。

給這倆配置 Kerberos 認證真是天上地下,Trac 嘛都不用管,直接支援,Redmine 就郁悶大發了,由于我是 Perl fan,不懂 Ruby 也提不起興趣學,網上搜尋了下,讓 Redmine 支援 HTTP Auth 的辦法倒是頗有幾個:

  • http://www.redmine.org/issues/1131 這個辦法是三年前的,經測試,不好用
  • http://www.redmine.org/projects/redmine/wiki/Alternativecustom_authentication_HowTo 這個算是最靠譜的文檔了,也有快兩年曆史了,有些地方也是需要修改的,而且這個文檔說的不詳細(或者我沒看明白),伊沒說明是不是寫成 Redmine plugin,害我鑽研了下怎麼寫 Redmine 插件。這個文檔裡那段直接往 Redmine 資料庫裡 auth_sources 表格裡插記錄的方式很惡搞,丫就不能整個腳本或者 Web UI 啥的封裝這個内部細節麼?
  • https://github.com/AdamLantos/redmine_http_auth  看起來這個正是我要的,可惜試驗過後發現不好用,畢竟也有兩年沒更新了,後來大緻掃了下實作,伊是玩了個技巧,實際也是利用上面第一個辦法的思路,隻是利用 Ruby 動态語言特性覆寫了一些  Redmine 的代碼。
  • https://github.com/edavis10/redmine_sso_client 沒試驗這玩意,伊還整了個 sso server,鬼才用呢。。。

沒辦法,隻好自己摸索着鼓搗,Ruby 的文法糖真多,看得我這個 Perl 中高段選手都一愣一愣的,好不容易摸出門道,結合上面第一個辦法和第二個辦法,讓 Redmine 支援 HTTP auth 了,本來想給 Redmine 官方提個更新檔,結果發現伊連郵件清單都沒有,我懶得在它網站注冊帳号,你看 Trac 的開發者就沒那麼二,人家就有郵件清單——你以為你 Redmine 搞個 forum 使用者就紛紛來注冊啊。。。

有興趣索取更新檔的同學請聯系 Dieken at newsmth——沒水木帳号就注冊個吧,哈哈……

繼續閱讀