2012年8月17日 星期五

windows版 trac 與 svn 組合


此文出處:http://software.intel.com/zh-cn/articles/Trac_install_configure/?cid=sw:prccsdn22921
避免忘記先節錄下來
Trac, SVN的安裝以及配置

目錄
1. 簡介
2. 下載必備軟件包
3. Trac的安裝
4. 新建和測試Trac工程
5. 集成Trac和Apache
6. 安裝SVN並且集成Apache
7. 權限管理
8. Trac中的Wiki和Ticket

1. 簡介
首先介紹一下Trac、SVN、Apache、Wiki的概念。

Trac是一個開源的項目管理、追蹤缺陷(Bug)軟件。Trac使用Python語言開發,是建立在Wiki的Ticket基礎上的網頁界面系統。Trac是以面向進度模型為項目管理模型的,最明顯的特點就是它是以里程碑 (Milestone) 方式進行項目管理的。每個里程碑中的具體要做哪些事情,就使用Ticket來進行定義、跟蹤等。Trac 以簡單的方式建立了一個軟件項目管理的Web應用,以幫助開發人員更好地寫出高質量的軟件; Trac 應用力求不影響現有團隊的開發過程。

SVN是一個開源的版本管理工具,是CVS的替代產品。SVN將數據放置在中央資料檔案庫中 (repository) 中,該檔案庫會記住每一次文件的變動。這樣就可以把檔案恢復到舊的版本。SVN是一個通用的系統,可以用來管理任何類型的文件,包括程序源代碼。

Apache是是世界使用排名第一的Web服務器,它可以運行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。

Wiki是一個協同寫作平台或者稱之為開放編輯系統。即它允許所有人修改它的網頁。Wiki使用了簡化的語法代替複雜的HTML,加上WEB界面的編輯工具,降低了內容維護的門檻。Wiki的特點是方便和開放。



2. 下載必備的軟件包
以下安裝包是完成Trac安裝與配置必須的:
httpd-2.2.21-win32-x86-no_ssl.msi
python-2.6.6
Trac-0.12.2.win32.exe
Genshi-0.6.win32.exe
setuptools-0.6c11.win32-py2.6.exe
pysqlite-2.6.0.win32-py2.6.exe
Setup-Subversion-1.6.17.msi
svn-python-1.6.5.win32-py2.6.exe
mod_python-3.3.2-dev-20080819.win32-py2.6.exe


3. Trac的安裝
在開始安裝之前,筆者推薦不要把下列程序安裝到默認路徑,即Program Files文件夾下。安裝在默認路徑下會引起一些列的權限問題,導致Trac,SVN的安裝失敗。
Step 1. 安裝Apache Http Server:httpd-2.2.21-win32-x86-no_ssl.msi。Trac是一個網頁界面系統,通過在Apache服務器上部署Trac,可以實現對Trac項目的訪問和管理。
Step 2. 安裝python-2.6.6。Trac以及相關的安裝軟件是使用python語言編寫的,需要python環境的支持。
Step 3. 安裝trac-0.12.2.win32.exe。Trac安裝包。安裝時將自動識別python的安裝目錄,自動安裝到python目錄下的script文件夾下。
Step 4. 安裝Genshi-0.6.win32.exe。Genshi模板系統,用於HTML渲染,屬於網頁表現層。安裝時會自動識別python安裝目錄。
Step 5. 安裝setuptools-0.611.win32-py2.6.exe。安裝工具。安裝時會自動識別python安裝目錄。
Step 6. 安裝pysqlite-2.6.0.win32-py2.6.exe。PySQLite是SQLite和python綁定的輕量級數據庫引擎,它是Trac默認的數據庫。安裝時會自動識別python安裝目錄。
注意:因為step3-6中的安裝文件依賴於python的安裝目錄,所以python-2.6.6的安裝必須先於其他文件。

4. 新建和測試Trac工程
Step 1. 在命令行中新建Trac工程:
$python26/Scripts/ >trac-admin C:\tree\trac\projectname initenv
Step 2. 測試本地:
在命令行中輸入$python26/Scripts/ >tracd -p 8080 C:\tree\trac\projectname,在命令行打開的情況下在瀏覽器中訪問http://localhost:8080/。
當看到Serving on 0.0.0.0:8080 view at http://127.0.0.1:8080/時,測試成功。

5. 集成Trac和Apache
Step 1. 安裝mod_python-3.3.2-dev-20080819.win32-py2.6.exe。
Step 2. 在Apache2.2/conf/httpd.conf中加入LoadModule python_module modules/mod_python.so。
Step 3. 重啟Apache。
Step 4. 在$Apache2.2/conf/httpd.conf中加入:
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir C:/tree/trac
PythonOption TracUriRoot /trac
</Location>
注意:這裡的TracEnvParentDir指新建的trac工程所在的目錄,而非tracd.exe所在 目錄。本教程中,trac工程所在目錄為C:/tree/trac。
Step 5. 修改監聽端口:Listen 8000
Step 6. 測試:訪問http://localhost:8000/trac,檢查是否能訪問trac工程

6. 安裝SVN並且集成Apache
Step 1. 安裝Setup-Subversion-1.6.17.msi和svn-python-1.6.5.win32-py2.6.exe。
Step 2. 把$subversion/bin/mod_authz_svn.so和mod_dav_svn.so複製到$Apache2.2/modules/下,並在$Apache2.2/conf/httpd.conf中加入:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

並把LoadModule dav_fs_module modules/mod_dav_fs.so和LoadModule dav_module modules/mod_dav.so前的#號去掉
把$subversion/bin/目錄下的所有.dll文件複製到$Apache2.2/bin目錄下
Step 3. 重啟Apache。
Step 4. 新建SVN工程:
在cmd中>svnadmin create --fs-type fsfs C:\tree\svn\reponame
Step 5. 創建passwd密碼文件
在cmd中>$Apache2.2/bin > htpasswd -c C:\tree\passwd admin
Step 6. SVN和Apache集成:在$Apache2.2/conf/httpd.conf中加入
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath C:/tree/svn
# <LimitExcept GET PROPFIND OPTIONS REPORT>
AuthType Basic
AuthName "SVN"
AuthUserFile "C:/tree/passwd"
Require valid-user
# </LimitExcept>
</Location>
Step 7. 重啟apache。

7. Trac的權限管理
Step 1. Trac 頁面中的login
在$Apache2.2/conf/httpd.conf中加入:
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "TRAC"
AuthUserFile "C:/tree/passwd"
Require valid-user
</LocationMatch>

Step 2. Trac中添加TRAC_ADMIN用戶:命令行中輸入
$python26/scripts > trac-admin C:\tree\trac\projectname permission add admin TRAC_ADMIN

Step 3. 把svn版本庫同步到trac中:
修改$trac/projectname/conf/trac.ini中repository_dir = c:\tree\svn\reponame
Cmd:
$python26/scripts > trac-admin C:\tree\trac\projectname repository resync (default)

trac0.12及以後的版本添加了一種新的svn版本庫與trac關聯的方法:
1. 用admin賬戶登錄trac,選擇右邊的Admin欄,點擊Admin欄中的
Version Control
Repositories
將服務器上的repo路徑進行添加
2.按照添加完成後的操作提示進行操作:
1. 運行 trac-admin $ENV repository resync "RepoName" 以同步Trac和版本庫。
2. 您還應該在版本庫上設置一個 post-commit 鉤子(該post-commit的添加位置為svn repository的hooks目錄下),對每一提交的變更集調用 trac-admin $ENV changeset added "RepoName" $REV。
例:在hooks目錄下添加post-commit.cmd可執行文件,文件內容為:
@C:\Python26\Scripts\trac-admin.exe C:\tree\trac\test changeset added "%1" "%2"

之後可以通過htpasswd C:\tree\passwd users 添加用戶

注意:Trac,SVN的用戶和密碼都保存在C:\tree\passwd這個文件裡,要修改密碼的話只有通過在服務器端修改這個密碼文件來實現,客戶端是不能修改密碼的。如果要實現在客戶端修改密碼,可以選擇安裝tracaccount plugin插件,相關鏈接:http://trac-hacks.org/wiki/AccountManagerPlugin

8. Trac中的Wiki和Ticket
Wiki 是一個協同寫作平台或者稱之為開放編輯系統,即它允許所有人修改它的網頁。Wiki 使用了簡化的語法,替代複雜的 HTML,加上 WEB 界面的編輯工具,降低內容維護的門檻。Wiki的特點是方便和開放。

Wiki 最適合做百科全書、知識庫、整理某一個領域的知識等知識型站點,幾個分在不同地區的人利用 Wiki 協同工作共同寫一本書等等。Wiki 技術已經被較好的用在百科全書、手冊/FAQ編寫、專題知識庫方面。

整個Trac是建立在Wiki和Ticket的基礎上的,Wiki在Trac中充當書寫文檔、Ticket的語法,它包含了一些類型的HTML語法,但簡化了語法格式,在Guide文檔中有語法的詳細介紹。Wiki的具體語法見:http://trac.edgewall.org/wiki/WikiFormatting

Ticket是Trac中的另一個重要組成部分,Tac使用Ticket傳遞消息,消息傳遞的個體單位也以Ticket為標準。一個Ticket是具體要做的事情的載體,它包含了很多描述性消息。Ticket的詳細信息請見Guide文檔。







沒有留言: