你希望你的版本控制軟體, 管理你的程式碼像下面這樣, 用瀏覽器自由的瀏覽各個歷史版本紀錄的 source code 嗎?
這一切都發生在程式出錯時 ...
寫 DirectShow Filter 有時候真的很討厭, 不小心整個程式就卡住不會動了. 而自己還搞不清楚到底改了哪些東西.
這時還得向 svn server 翻舊程式出來比較, 這操作手續還挺麻煩的.
如果你有安裝 Trac, 那麼他的 browse source 功能就派上用場了. 不用自己下指令到 svn 把以前的 code 吐出來, 只要用瀏覽器查一下版本間的差別就可以了.
雖然我們依然可以用那隻[烏龜]做到相同的效果, 可是用瀏覽器查閱各版本 source 就是方便.
接下來, 看看本文內容大綱:
首先, 你需要先使用 SubVersion 管理你的專案.
如果你還不懂沒關係, 很簡單, 安裝版本控制軟體 svn 不會超過 5 個步驟, 但會為你帶來巨大的好處. 請參閱我過去的文章,
你就知道有多簡單了.
現在我們來看看 Trac 如何地把 svn 的專案管理, 推向使用 Web 介面以及更好用的境界.
下載軟體工具 (別擔心, 全部只是下載與安裝兩個動作, 不會問東問西的)
Step 1: Python: ActivePython 2.5 (這個要先安裝)
Step 2: 其他工具 (一次下載)
各項工具原始網址:
1. 設定工具: setuptools-0.6c7.win32-py2.5.exe
2. 語法剖析工具: Genshi-0.4.4.win32.exe
3. Trac 主程式: Trac-0.11b2.win32.exe
4. 資料庫介面: pysqlite-2.4.0.win32-py2.5.exe
5. 最簡單的資料庫: sqlite-3_5_9.zip (選 Precompiled Binaries For Windows)
:只是解開一個檔 (sqlite3.exe) 而已, 放到 Pyton2.5\Scripts 裡面
: sqlite-3_6_17.zip 測試過 ok!
6. 版本控制工具介面: svn-python-1.4.6.win32-py2.5.exe
------------------------------------------------------------------------------
版本號碼必須一致
注意: 因為我使用的是 svn-win32-1.4.6.zip, 所以我下載的是 svn-python-1.4.6.
(svn-win32-1.5.3.zip 與 svn-python-1.5.3 測試過了, 沒問題)
版本控制工具介面: svn-python-1.4.6.win32-py2.5.exe 必須跟你的 svn server 版本號碼
相同, 否則會出現下面的錯誤
SubversionException: ("Expected FS format '2'; found format '3'", 160043)
------------------------------------------------------------------------------
* Html模版工具: (注意: Trac 將在 0.11 版以後, 不使用 Clearsilver [1] )
開始安裝 Trac
下載後, 先排好準備一個一個安裝
| 安裝後, 如右圖 -> |
設定 Trac ( 3 steps 完成)
Step 1: 先設定 Path 到 C:\Python25\Scripts
Step 2: 建立你自己的 Trac Environment 根目錄位置目錄. (ex: c:\trac)
mkdir trac
cd c:\trac
Step 3: 下指令建立 Trac 專案
C:\trac>trac-admin trac001 initenv
(你也可以下 trac-admin-script.py trac001 initenv)
其中 trac001 對應到的是專案根目錄名稱. 看下面的圖你就明白了.
你看到的樣子, 應該如下所示
其中
* Project Name: 是你的專案名稱 (可以是中文)
* Database connection string : 直接按 Enter 即可
* Repository type: 直接按 Enter
* Path to repository: 這裡指向你的 svn repository 絕對路徑位置.
例如: 我的 EZLearn 語言學習機 svn 位置是 E:\00_svn_repository_root \
EZLearn_svnRoot.
那麼 Path to repository 的設定就是這個位置.
好了, 我們想先看看這東西到底會不會動.
首先, 你會在 c:\trac\ 目錄下看到建立的專案目錄
測試
設定好就可以先啟動 Trac 看看有沒有問題
tracd --port 8000 c:\trac\trac001
開啟瀏覽器: http://localhost:8000/trac001
如果你看到的畫面, 長的像下面一樣, 那表示你安裝成功了.
- 限制一定要使用 local host, 以防止網路上任何人存取你的資料, 你可以用下面的指令
tracd --hostname=localhost -p 8080 c:\trac\trac001 - 若你有多個專案要管理, 則下面指令可以幫助你 .
tracd -p 8080 /path/to/project1 /path/to/project2 - 離開 server
直接按 Ctrl + C 即可
如果你現在按 login 的話, 會出現
Trac Error
Authentication information not available. 的字樣.
這是告訴你, 啟動 tracd 時, 必須要先設定權限.[2]
設定權限
如果你使用的是 Apache 那直接使用 htdigest 指令即可. 但是我不想裝 Apache, 只想讓我的系統乾乾淨淨的執行, 那怎麼辦呢?
詳細作法如下:
Step 1: 先把下面產生 password 的程式存成 trac-digest.py , 然後設定一下環境變數 Path . (通常為了方便管理, 所以我就直接把 trac-digest.py 放到 C:\Python25\Scripts 裡面)
from optparse import OptionParser
import md5
# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
help="the password to use")
(options, args) = parser.parse_args()
# check options
if (options.username is None) or (options.password is None):
parser.error("You must supply both the username and password")
# Generate the string to enter into the htdigest file
realm = 'trac'
kd = lambda x: md5.md5(':'.join(x)).hexdigest()
print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
Step 2: 產生 passwd
trac-digest.py -u 你的名稱 -p 你的密碼 >> c:\digest.txt
例如:
trac-digest.py -u jing -p 密碼 >> c:\digest.txt
Step 3: 啟動 trac 系統
tracd --port 8000 --auth=專案名稱,c:\digest.txt,trac 專案所在絕對路徑
例如:
tracd --port 8000 --auth=trac001,c:\digest.txt,trac C:\trac\trac001
現在你按 login 就會出現, 正常的登入畫面了.
如何管理 Trac
* 取消任何匿名登入
指令: trac-admin.py 你的trac 專案絕對位置 permission remove anonymous *
例如: trac-admin.py c:\trac\trac001 permission remove anonymous *
* 如何加入一個新的使用者 (2 steps, only)
Step 1: 建立 user 與 passwd 指令
trac-digest.py -u admin -p 密碼 >> c:\digest.txt
Step 2: 指定權限
C:\trac>trac-admin c:\trac\trac001 permission add admin TRAC_ADMIN
建立管理者.
(即新增一個使用者 admin 讓他擁有 TRAC_ADMIN 權限)
* 利用 Web 介面管理使用者 - 設定群組, 修改權限 (2 steps)
Step 1: 修改 /你的 trac 專案目錄/conf/trac.ini, 增加下面的條列.
[components]
webadmin.* = enabled
Step 2: 完成.
在新的 Trac 0.11 版中, 已經內定 Web 管理介面 (WebAdmin) 了. 所以直接用 admin login 進去. 你會看到 Admin 標籤.
選擇 Permissions
接下來, 你可以自由的指定權限給某一個使用者.
你還可以建立與管理群組
中文顯示的問題 (2 steps)
因為 trac 專案內部使用的是 iso-8859-15 顯示非 Unicode 字元, 所以當你的程式碼檔案不是使用 Unicode 編碼方式存檔時, 就會遇到亂碼的問題.
<sol> 很簡單, 以台灣來說, 中文大都用 big5 編碼格式, 所以只要在 trac.ini 中設定一下即可.
Step 1: 把 /trac 專案路徑/conf/trac.ini 打開
Step 2: 把
[trac]
default_charset = iso-8859-15
換成
default_charset = big5
Step 3: 完成 (別忘了重新啟動 tracd 喔) ^_^
你看看, 中文顯示不就來了嗎?
Upgrade problem :
如果你安裝新的版本出現 pkg_resources.DistributionNotFound: Trac==0.11rc1, 則處理方式如下 [6]:
Step 1: 刪除 c:\Python25\Lib\site-packages\ 裡面 trac 開頭 egg-info
Step 2: 刪除 c:\Python25\Lib\site-packages\trac
Step 3: 重新安裝 trac 版本, 即可.
整理一下:
建立新的 trac 專案:
trac-admin 專案名稱 initenv
增加一個新的使用者: (你可以調整 digest.txt 的位置)
trac-digest.py -u admin -p 密碼 >> c:\digest.txt
設定使用者權限:
直接用 admin 登入, 用 WebAdmin 直接管理.
中文顯示問題:
修改 trac.ini 中 [trac] default_charset = big5
啟動 tracd 範例
tracd --port 8000 --auth=trac001,c:\digest.txt,trac C:\trac\trac001
Enjoy.
by Jing
參考資料
[1] http://trac.edgewall.org/wiki/TracOnWindows/Python2.5
[2] Standalone 設定 http://trac.edgewall.org/wiki/TracStandalone
[3] http://blog.xuite.net/emisjerry/tech/12578393
[4] 更多的 trac 操作指令, 可以在http://localhost:8000/trac001/wiki/TracGuide 找到
[5] 更多的 trac.ini 設定說明
[6] Upgrade 問題的解決
沒有留言:
張貼留言