2007年9月17日星期一

在 Windows 上使用 Trac on Apache - 專案建置篇

在 Windows 上使用 Trac on Apache - 專案建置篇

說明

前一篇安裝與設定篇已經架設好環境了,但是專案才是 Trac/Subversion 的靈魂所在,這一篇就是說明如何建立一個新的 Trac/Subversion 專案。


建立 Subversion 專案

建立檔案庫

建立的方式很簡單,假設現在要建立一個名為 projectname 的專案,那麼就在命令提示列視窗中輸入以下指令 (粗體字部份) :

D:\>cd Repository\svn
D:\Repository\svn>svnadmin create projectname

這樣就能建立出屬於 projectname 這個專案的檔案庫了。

註:先前提過的權限設定改由 Apache 來控管,因此不用再修改 conf 底下的檔案了。

設定 post-commit

post-commit 簡單來說就是在本地端 Commit 後,會自動執行的 hook 機制;通常是用來記錄更新的 log 或是發送 Email ,這裡則是用來自動更新測試環境的 Web 檔案。其執行的原理暫時略過,這裡先說明如何設定。

這裡我先假設 D:\wwwroot\projectname 就是我們所要更新的目的地, IIS 是以它做為執行的根目錄;當我們在本地端開發的檔案 Commit 後,就會同步這裡的檔案。

接下來的設定方式很簡單,只要把以下文字存成 post-commit.bat :

@ECHO OFF
SET SVN="D:\\appserv\\svn\\bin\\svn.exe"
SET DIR="D:\\wwwroot\\projectname\\"
CALL %SVN% update %DIR% --username website --password websitepassword --non-interactive

然後存到 D:\Repository\svn\projectname\hooks\ 下即可,其中 website 帳號在前一篇說明裡已經建立了。

註:這裡也可以更新記錄存到 log 檔案裡或是發送 Email 給相關組員,不過這邊暫時不打算弄得太複雜。

建立 Trac 專案

建立好 SVN 檔案庫以後,接下來就可以建立 Trac 專案了。

建立資料庫

請切換到 D:\AppServ\python\Scripts 路徑,並在命令提示列視窗中執行以下指令 (粗體字部份) :

切換到 D:\Appserv\python\Scripts 下,建立一個名為 projectname 的 trac 專案。

D:\Appserv\python\Scripts>python trac-admin D:\Repository\trac\projectname initenv

接著會出現以下提示文字,請依照下面的建議操作:

Project Name [My Project]> New Project (輸入專案名稱,不必和目錄名稱相同)
Database connection string [sqlite:db/trac.db]> (直接按 Enter 使用預設值)
Repository type [svn]> (直接按 Enter 使用預設值)
Path to repository [/path/to/repos]> D:\Repository\svn\projectname (輸入 Subversion 專案檔案庫的位置)
Templates directory [D:\Appserv\python\share\trac\templates]> (直接按 Enter 使用預設值)

這樣就建立好 Trac 的資料庫了。

設定預設使用者

保留 D:\Appserv\python\Scripts 的執行路徑,並在命令提示列視窗中執行以下指令 (粗體字部份) :

D:\Appserv\python\Scripts>python trac-admin D:\Repository\trac\projectname permission add admin TRAC_ADMIN

這樣會將 admin 加入 Trac 專案管理者。

如果不想讓匿名使用者在 Trac 專案有任何權限的話,就執行:

D:\Appserv\python\Scripts>python trac-admin D:\Repository\trac\projectname permission remove anonymous '*'

註:之前我測試用 * 號可以刪掉所有權限,不曉得什麼時候改成要用單引號把 * 號包起來。

然後我們再建立一個 developer 群組,同時給它需要的權限 (請自行決定相關權限) :

D:\Appserv\python\Scripts>python trac-admin D:\Repository\trac\projectname permission add developer WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW TICKET_APPEND TICKET_CREATE TICKET_VIEW TIMELINE_VIEW ROADMAP_VIEW

註:如果 developer 沒有對應到 Apache 所建立的帳號時,它對 Trac 而言就是一個群組。

相關 Plugins 設定

建立好 Trac 資料庫後,就要在專案裡啟用 WebAdmin 和 AccountManager 這兩個 Plugins 。請用文字編輯器打開 D:\Repository\trac\projectname\conf\trac.ini ,把以下文字貼到 trac.ini 的最下方:

[account-manager]
password_file = D:\Repository\project-users.db
password_store = HtPasswdStore

[components]
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = enabled
trac.web.auth.loginmodule = enabled
iniadmin.iniadmin.iniadminplugin = enabled
webadmin.* = enabled

這樣到時候用 admin 登入專案時,就能夠使用 Admin 功能了 (包含 WebAdmin 、 AccountManager 和 IniAdmin ) 。

補充:如果用 admin 登入後,還是看不到 Admin 功能的話,請重新啟動 Apache 。

註:這時的 logout 功能因為前面 httpd.conf 設定的關係,所以只有重新載入 Trac 的動作而無法真正登出。

總結

再一次提示重點:

  1. 建立 Subversion 檔案庫並且配置 post-commit 。

  2. 建立 Trac 資料庫,並配置權限與相關 plugins 。

以上便是完整的 Trac/Subversion 專案建置方式,每新增一個專案都要做一次。

接下來將會補上簡易的使用說明。

没有评论: