而對於寫程式來說,更加需要版本控管來減低把自己的code改爛後無法復原的情況發生
實驗室的學長以前架了CVS server, 但其實CVS已經越來越少人在用了..
大家都改用SVN, 雖然不知道主要原因是甚麼, 但應該至少是用起來比較方便
記錄一下如何架設SVN
基本上要架設SVN, 都會一並使用svn server端跟client端
最普遍的, server 端使用Subversion, 而client端則使用TortoiseSVN
先把TortoiseSVN安裝好後
我們再來安裝Subversion (Subversion需配合Apache使用, Apache的安裝請自己再找文章吧)
安裝完Subversion後, 請把目錄資料夾裏 Subversion/bin 底下的
mod_dav_svn.so
mod_authz_svn.so
libdb4X.dll <--因版本不同, X可能會不一樣, 我下載的版本就是libdb44.dll
libeay32.dll ssleay32.dll
這5個檔案copy到Apache底下modules的目錄裏
然後開啟 Apache底下conf目錄裏的 httpd.conf 檔案apache的設定
找到以下這兩行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
然後把其前的 '#' 刪掉, 讓apache執行時讀取這兩個模組
接著, 再加上下面這兩行指令
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
再來, 我們需要設定SVN存放版本資料的位置,
繼續在httpd.conf裏加入以下
####SVN設定###########
<Location svn/code> #設定網址, ex: http://localhost/svn/code
DAV svn
SVNPath c:/svn/myCode #設定SVN資料在本機裏的絕對路徑, 待會我們再來建這個檔
案
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
#進行帳號驗證時的帳號、密碼資料
AuthUserFile "c:/svn/myCode/conf/passwd.ini"
# only authenticated users may access the repository
#操作時要進行帳號驗證,拿掉此行就不會進行驗證
Require valid-user
# our access control policy
# authz.ini 是設定帳號對各 Project 可讀/寫權限的設定檔
AuthzSVNAccessFile "c:/svn/myCode/conf/authz.ini"
</Location>
儲存好之後, 我們接下來使用
按照剛剛打的路徑建立一個 C:/svn/myCode 的資料夾, 以放置SVN的資料
成功建立repository後, myCode內應該會有以下檔案
因為要提供網路存取的關係, 需要把這個c:/svn 資料夾共用出去, 使用者為everyone
剛剛設置 httpd.conf 時應該有注意到我們有設SVN的存取密碼及權限檔
現在先利用Apahce來建立密碼檔 - passwd.ini
開啟cmd, 輸入
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c passwd.ini [帳號]
輸入帳密後, 在apache/bin 裏應該就會產生一個passwd.ini的檔案
裏面就會有剛建的帳號跟加密過的密碼
把passwd.ini 放到 c:/svn/myCode/conf/passwd.ini
接著我們建立存取權限的檔案authz.ini
自己手動新增這個檔, 然後修改內容為以下
# 先定義群組
[groups]
developer = user1,user2,user3
art = user4
everyone = *
# 預設拒絕所有人進入瀏覽
[/]
* = # *為annoymous, *= 即匿名不可存取
# 設定儲存庫訪問權限,語法:[儲存庫:專案路徑]
[ProjectName:/]
@developer=rw #可讀寫
@art=r #僅可讀取
存檔.以上步驟皆完成後, 現在便來重開Apache, 更新設定吧.
最重要的時刻來了, 我們連到 http://localhost/svn/myCode
如果SVN成功的話, 將會出現 Revision 0:/ 的畫面
如果不成功的話...可能就要檢查:
1. svn的資料夾的共用設定
2. 在httpd.conf設置讀入模組那4行程式的順序
3. 環境參數中是否有Subversion的路徑
再不行的話, 我也不知道了...再砍掉重練吧