第一章 安裝
1. 採用源檔案編譯安裝。源檔案共兩個,為:
subversion-1.6.1.tar.gz (subversion 源檔案)
subversion-deps-1.6.1.tar.gz (subversion依賴檔案)
注意檔案版本必須一致,否則很容易產生各種奇怪的問題.
2. 上傳以上兩個檔案到伺服器上,解壓。解壓命令為:
1 |
tar xfvz subversion-1.6.1. tar .gz |
2 |
tar xfvz subversion-deps-1.6.1. tar .gz |
指令簡介:tar 為解壓命令,xfvz為tar命令的參數,用於解壓tar.gz格式壓縮的檔案。
3. 解壓後產生 subversion-1.6.1 子目錄,兩個壓縮包解壓後都會自動放到此目錄下,不用手動更改。
4. 進入解壓子目錄:
5. 執行 ./configure –prefix=/opt/subversion 進行配置設定並指明安裝目錄. 注意prefix前是兩個減號. 預設不帶BDB包, 所以預設使用的是FSFS模式. 若想使用BDB模式需另外下載BDB包.建議使用FSFS模式.兩種模式比較參考以下連結:
http://doc.iusesvn.com/show-21-1.html
指令簡介:configure命令用於檢查安裝平台和目標特徵,prefix用於指定路徑。
6. 執行 make 編譯.
7. 執行 make install 安裝.
8. 添加環境變數:
在檔案最後加入:
SVNPATH=$PATH:/opt/subversion/bin
export SVNPATH
9. 測試SVN是否安裝成功,執行:
如果顯示版本資訊, 則安裝成功.
第二章 配置
本系統採用為每個項目單獨建一版本庫的策略。設定檔,密碼檔案,存取控制檔案等都放在版本庫的conf目錄下。所以每次開始一個新項目都必須建立一個版本庫,並重新設定各設定檔。還有很重要的一條,要求各組員重新設定用戶端,包括伺服器版本庫路徑,本地路徑等資訊。
1. 建立版本庫目錄(可建立多個,建立庫後以下各項都需重新設定。注意區別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)
1 |
mkdir –p /opt/svndata/repos |
2. 建立svn版本庫(與上面目錄對應)
1 |
svnadmin create /opt/svndata/repos |
執行此命令後svn自動在repos目錄下添加必須的設定檔.
注意:版本庫不同於一般的檔案夾, 直接在作業系統上建立檔案無法被SVN識別, 必須使用import等命令將檔案匯入版本庫.
此為svn內部指令,create用於建立版本庫。請使用svn help查看詳細說明。
3. 修改版本庫設定檔
1 |
vi /opt/svndata/repos/conf/svnserve.conf |
各參數功能在設定檔的注釋中有說明, 此處配置如下:
[general]
anon-access = none # 使非授權使用者無法訪問
auth-access = write # 使授權使用者有寫入權限
password-db = /opt/svndata/repos/conf/pwd.conf # 指明密碼檔案路徑
authz-db = /opt/svndata/repos/conf/authz.conf # 存取控制檔案
realm = /opt/svndata/repos # 認證命名空間,subversion會在認證提示裡顯示,並且作為憑證緩衝的關鍵字。
其它採用預設配置. 各語句都必須頂格寫, 左側不能留空格, 否則會出錯.
其中pwd.conf 與 authz.conf 在建立版本庫時系統不會自動建立,需要自己建立。
指令簡介:這是svn設定檔的格式,請按照以上格式書寫。
4. 配置使用者
1 |
vi /opt/svndata/repos/conf/ pwd .conf |
輸入以下內容:
[users]
username1 = password1
username2 = password2
可以添加多個,此為使用者名稱密碼對。
5. 配置許可權
vi /opt/svndata/repos/conf/authz.conf
指令簡介:此設定檔採用“基於路徑的授權”策略,中括弧裡指定路徑,以下列出對各使用者的授權。包括唯讀r,讀寫rw。沒有列出的使用者,則不允許訪問。還可以對使用者分組,具體請參考svn手冊,以下是簡單例子:
[/opt/svndata/repos]
user1 = rw
user2 = r
6. 使用import匯入檔案
建立好的版本庫是空的,需要匯入工作目錄。
1 |
$ svnadmin create /usr/ local /svn/newrepos |
2 |
$ svnimport mytree file :///usr/ local /svn/newrepos/some/project |
但是在匯入後,用來的分類樹並沒有轉換成工作拷貝,為了開始工作,還是需要運行svn checkout匯出一個工作拷貝。因為匯入後,檔案在版本庫中是以特殊的形式存在db檔案夾中的,不能以明文的方式查看。必須使用svn checkout匯出工作複本(workcopy)才能以正常方式查看。
1 |
svn checkout file :///usr/ local /svn/newrepos/some/project workcopy |
7. 啟動服務
執行svnserve –d –r /opt/svndata/repos/ 啟動服務, 以deamon方式運行。
本系統採用svnserve方式, 這是小Team 專案的推薦方法. 這種方法維護最少, 配置最簡單.
指令簡介:此指令用於啟動svn服務,-d指明以守護模式運行,svn自動在3690連接埠監聽。3690是預設連接埠,可以使用“–listen-port=”或者“–listen-host=”來指定其它連接埠。-r選項用來指定svn服務的根目錄,這樣使用者就可以使用相對路徑訪問,而不用提供完整路徑。
使用以下命令檢出:(svnserver方式)
1 |
svn checkout svn://127.0.0.1/ dir |
以上為樣本。IP需要根據具體情況調整,dir為版本庫路徑,若在啟動時已指定則可省略。
版本庫資訊在版本庫檔案夾裡,所以要刪除版本庫只需要刪除版本庫所在的檔案夾即可。
另外工作複本只是自己維護的檔案夾,可以用Windows直接刪掉,對別人沒有影響。千萬不要使用版本庫的刪除命令,否則版本庫裡的內容也會被刪除。