前幾天好奇,也剛好得了點空閑,然后就想看看ViewVC對Subversion的支持程度,于是就想裝個玩玩。好死不死的,在我的VMWare Workstation上剛好有個Windows Server 2003,心想,就它吧,可就這么一偷懶,折騰了我好幾天,最終還是只能算將就著把它給裝上了。
安裝環境:Windows Server 2003, IIS 6, Suberversion 1.3.0, ViewVC 1.0-Dev
安裝步驟:
一、首先安裝Subversion
,按照
Mere-Moments Guide to installing a Subversion server on Windows
的介紹自然應該是很容易就搞定安裝和簡單配置的,然后往倉庫中添加幾個文件,然后做點更新,以便從ViewVC中能看到點東西;
二、安裝ViewVC
1. 既然裝了Subversion,那就學以致用,直接從
http://viewvc.tigris.org/svn/viewvc/trunk/
檢出個最新的版本下來就行,或者到
http://www.viewvc.org/nightly/
下載個打包的版本;
2. 如果你有閱讀Readme的習慣,那恭喜你,基本上完成基本的安裝配置是沒有問題啦;當然,你一定要看完整個REQUIREMENTS這一節再決定下載安裝Python的什么版本,很不幸,Subervsion現在提供的Python包(Python bindings)只支持Pythong 2.3,所以,如果你一開始下載安裝的是Python 2.4,就得重新下載安裝了:):
Subversion Python Bindings:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
Python 2.3:
http://www.python.org/ftp/python/2.3.5/Python-2.3.5.exe
pywin32:
http://prdownloads.sourceforge.net/pywin32/pywin32-208.win32-py2.2.exe?download
3. 安裝好這些后,將Python的安裝目錄添加到系統路徑中;
4. 在剛才下載的ViewVC目錄下執行:python viewvc-install,第一個提示后指定ViewVC的安裝目錄,第二個提示直接回車就行。
三、ViewVC基本配置
由于ViewVC自帶服務程序,因此,最好是先啟動ViewVC服務程序,如果ViewVC自己運行正常的話,那就不用考慮ViewVC的配置問題了,想當初俺就沒有充分利用這一點,而在IIS和ViewVC之間反復修改參數,都不知道是怎么死的。
1. ViewVC最簡單配置
打開viewvc.conf,修改下面幾行:
將cvs_roots = cvs: /home/cvsroot注釋掉;
#svn_roots = svn: /home/svnrepos 改成類似于 svn_roots = mytest: C:/svn_repos/mytest,其中mytest是你指定的倉庫名,冒號后面跟的是倉庫所在的路徑;
default_root = cvs注釋掉,這樣你至少可以看到倉庫列表。
2. 雙擊ViewVC/bin下的standalone.py,就可以啟動ViewVC自帶的Web服務,然后在IE中輸入
http://localhost:7467/viewvc
就應該可以看到倉庫列表了,到這一步為止,我沒有碰到什么障礙,所以,沒什么可以提示的了;
3. 點擊任何一個倉庫,就應該可以看到倉庫中的目錄或文件了,但是,如果你在IE中看到如下的提示:
ImportError: No module named svn 那說明你沒有安裝Subversion的Python包,或者將其放到了Subversion的目錄下了;
'module' object has no attribute 'SubversionRepository' 那說明你將Subversion的Python包復制到了viewvc的vclib下,并且覆蓋掉了viewvc自己的文件;那么,要怎樣安裝這個包呢,ok,將其復制到ViewVC或者Python的lib目錄下吧,唉,當初整這個也費了我不少周折,慚愧,誰叫我是個Python盲呢:(
四、安裝diff和enscript工具
就這樣看看,也已經比Subversion自帶的Web界面好很多了,當然我們還應該挖掘ViewVC另外兩個基本功能:比較和語法高亮顯示,這樣才顯得專業嘛。
1. 到
http://gnuwin32.sourceforge.net
逐一下載以下工具:DiffUtils, enscript, libintl, libiconv, sed將其一股腦全部安裝好,將其bin目錄添加到系統路徑中;
2.打開viewvc.conf,將use_enscript =0改成1,重新啟動standalone.py;
3. 然后你就可以比較任意兩個版本的差別了;
4. 不過,當你要瀏覽某個文件時,你會看到一個提示,說:libintl-2.dll或libiconv-2.dll之類的找不到,啊,先在ViewVC自帶的Web服務下運行是多么的明智啊,如果你直接在IIS中調試,可就看不到這個提示了,這又是我N天的代價:(;
5. 為什么會這樣呢,不是安裝了Readme中提到的所有gnuwin32的包嗎?不過,你是不是象我一樣下的都是最新的版本呢?記得enscript的版本嗎?這個可是個老古董,2003年推出的,而其它的基本上是05年、06年的,不兼容啊!安全起見,當然是安裝與enscript同時代的包啦,當然,我將gnuwin32/bin目錄下的libiconv2.dll和libintl3.dll直接復制一份,改名成libintl-2.dll和libiconv-2.dll竟然也ok,看來,老外們僅僅是在文件名上沒有向后兼容,函數名還是基本上一致的,所以動態鏈接有動態鏈接的好處,而靜態鏈接也不失為一個取巧的辦法啊;
行文至此,ViewVC及相應工具的安裝告一段落,不要再去考慮ViewVC的安裝配置問題了,ViewVC的Readme也可以關掉了。接下來就是要在IIS上配置了。
五、IIS6設置
1. 創建一個虛擬目錄viewvc,直接指向ViewVC/bin/cgi就可以了,在虛擬目錄訪問權限步驟勾選執行權限,如下所示;
2. 在剛創建的虛擬目錄上點擊右鍵,選擇屬性,點擊配置按鈕,在應用程序配置對話框中點擊添加,填寫如下所示的內容;
3. 切換到文檔頁,將viewvc.cgi設置為默認內容文檔。
在Windows 2000下,到這里就可以了;但是在2003下,還要做下面兩步。
4.點擊Web服務擴展,理論上應該添加一個新的Web服務擴展,然后僅允許這個服務,但我沒有弄出來,所以,直接就允許所有未知cgi了,這也是我一開始說將就著用來著。到這里,基本上可以運行ViewVC了,但做比較和語法高亮顯示有問題,如果你想試試,還得
先重啟一下機器
,這也是讓我花了N天的代價的地方,如果你真按ViewVC的Readme中的Troubleshooting的建議左改右改的話,估計最后還是無計可施。當然,在它的Troubleshooting最后有個表,其中有一項提到如果修改了系統變量的話,需要重啟機器,我是重啟完后才體會到這一點的:(;
5. 按默認設置創建一個新的應用程序池,在新建的應用程序池上點擊右鍵,選擇屬性,選擇標識,在預定義帳戶中選擇本地系統;然后再修改viewvc虛擬目錄的屬性,將應用程序池改為剛創建的應用程序池,重新啟動機器。
到這里,基本完成ViewVC在IIS6上的安裝,其中辛酸自知啊!
六、不足
1. ViewVC for Subversion不提供類似CVSGraph的圖形化版本樹功能;
2. 如果提交的日志中有中文,將顯示亂碼,需要手工設置瀏覽器編碼,或者修改ViewVC的模版templates/include/header.ezt,在緊挨著<head>的下方添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,因為Subversion使用的是utf-8編碼;
3. 如果你的源代碼中有中文,則日志和源代碼不能兩全,其中必有一個是亂碼,難不成你源代碼也用utf-8編碼?如果你會Python,則建議修改一下ViewVC代碼,將日志先由utf-8轉換成gb2312,據說小海龜就是這么做的。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
