最近開始要RUN TIC100的案子了,看著正偉努力的建置資料庫,我也燃燒了!馬上把SVN也提早架設完成。在這之間我查了一大堆網路資料,但是仍然沒有辦法只有一個站就滿足我所有的要求,因此也google了好幾次,才把所有要用的資料找齊。那麼接下來跟大家介紹一連串的SVN安裝須知和常見問題,當然很多是從別的網站看來寫來的,但是我算是整合也都附上了參考連結,如果有冒犯到原作者
SVN ( Subversion ) 是一套非常好用的 檔案 版本控制 ( Revision control ) 系統
除了可以很方便的追蹤,交換,合併,比對檔案外,
更能保護檔案不會受到一些意外而讓心血的結晶損毀,
也可以讓團隊合作時,更加有效率。
以下簡單介紹 Subversion (Server端) 及
TortoiseSVN (Client端)
首先Subversion 下載點 、TortoiseSVN 下載點 和 TortoiseSVN中文包 (在Client端軟體的下載網頁往下一點)先提供給大家邊看邊下載,版本當然建議選擇新版與同版本。
下載好之後就可以先安裝簡單的Client端,這裡有 教學影片 ,兩分鐘內搞定!
再來如果你只需要使用SVN來控管你的Code且已經有人幫你架設好Server端,而你只需要知道如何更新你的Code,這個使用會簡單得多,S VN Client端會把SVN的功能放在右鍵選單(別忘了從設定把語系更改成繁體中文)。
那麼如何取得檔案呢?只需要在你選擇的資料夾,畫面中視窗我是在C:\Inetpub\wwwroot的demo資料夾上按右鍵,上面有個SVN取出(英文的忘了@_@,不過快速鍵都是(K)),然後到這個畫面。
檔案庫URL 就填上你的同伴架設的檔案庫網址,或是想要自己單機作版本控制的話可以直接使用file:///C:/SERVER INSTALL ROOT/svn/code的單機路徑亦可。
取出目錄
就是你選定的資料夾
按下確認既可!
更新檔案完成之後你的資料夾會有個綠色的勾勾來代表此資料夾的資料是與Server端相同,當你檔案修改過後他會出現像是禁止進入單行道的紅色標誌,那畫面上看到的功能列上有個重新定位,可以修改你的檔案來源,或是使用鎖定把某些檔案鎖住維持成這次版本,當然每次的動作都有註解欄位可以讓你填寫備註。
詳細的版本異動的測試可以參考juee.com的連結。
那麼在會使用Client端軟體之後,是不是打算自己當起老大(或是苦主),來把主要Code維護的工作攬在身上呢?呵呵,當然有時候架設Server的不一定就要維護,就像我啦,提供給大家平台,反而自己是Coding最遜的一個。XD
那麼架設Subversion基本上是與Apache結合在一起的,所以在安裝Subversion之前別忘了先安裝Apache,對於Apache不熟的人...也別怕,Apache也可以做到簡單安裝,只需要下一步下一步就OK囉。
用CTRL+F找80 再把80改成8080(建議)或是其他。(這一部分別怕麻煩,待會還會再看到這個檔案XD)
安裝完成以後,開啟瀏覽器,瀏覽網址 http://127.0.0.1 (或http://127.0.0.1:8080) 看看有沒有出現安裝成功的網頁。搞定Apache之後就把剛剛下載好的Subversion安裝起來,整個OK之後,通常RUN不起來!(哈哈,我也是啦,還搞很久)
這時候你要先把Subversion/bin/目錄下的 mod_dav_svn.so 和 mod_authz_svn.so libdb4X.dll、libeay32.dll、以及 ssleay32.dll 複製到 /modules/ 目錄下。(這裡會因為版本不同放的資料夾有所不同,且檔名或有變化,像我的是libdb44.dll)
接著再到Apache 的 httpd.conf(在
<apache_root>
<apache安裝目錄 conf="" loadmodule="">
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的 '#' 字元刪除,然後把下面幾行文字?#91;到這群 LoadModule 指令的後面:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
</apache安裝目錄>
</apache_root>
如果 Apache 仍然無法啟動,請依下列步驟檢查:
- 檢查 Subversion 的路徑是否有在系統的 %PATH% 環境變數裡面。(控制台→系統→進階→環境變數)
- 檢查你加入 httpd.conf 裡的項目是否正確,記住 mod_dav_svn.so 和 mod_authz_svn.so 必須在其他 mod_dav*.so 模組之後載入。(這個通常不會有問題,我是放在檔案最後面,一定是在其他模組之後載入)
再來都好了之後就要設定你的SVN要放在哪個資料夾,並且對應到網路上的路徑,設定語法是:
<location> /svn/repos_name</location> > DAV svn<location> SVNPath /absolute/path/to/repository</location></Location>
其中 "/svn/repos_name" 就是用戶端存取特定檔案庫的 URI(Uniform Resource Indentifier),SVNPath 後面指定的路徑則是檔案庫的絕對路徑,假設我們的檔案庫實際存放的路徑是 d:/svn/MyProject,並且希望用戶端使用 " http://myserver/svn/myprj
" 的 URL 來存取檔案庫,那麼要加入 httpd.conf 的內容就是:
<Location /svn/code> DAV svn SVNParentPath C:/Apache root/svn/code</Location>
建立好之後資料夾內應該要有以下的檔案存在。

這時候跑你的網頁應該會有版本0的顯示。(我的版本被我玩成1...我懶得再弄新的,就跟juee的網站借圖囉XD)

再來就是把你要共用的資料夾選擇匯入,並且在檔案庫URL那邊填入你的URL或是磁碟位置即可,那他在任一個版本寫入都會有紀錄並且在版本上+1
我相信如果有看完這一整篇,你應該也把SVN完整的設定好了,那如果還有問題的話也可以再留言大家討論!
最後在這邊提一下,php5學習日記裡面還有提到不同網域需要存取資料的時候就必須使用密碼的方法,這可以阻隔奇怪的人來使用你的檔案或是使你的檔案造成損毀。這塊我沒有弄,我想別外流出去,應該是沒人會想來搞我這個小咖洨XD
PS:我的整個環境設定:
- 作業系統:Windows XP Pro
- Port 80:IIS 5.0
- Port 8080:Apache 2.0.59
- Subversion v1.4.3
- TortoiseSVN 1.4.3.8645
JoStudio
juee.com
php5學習日記