SVN版本控制工具的安裝和配置

如何快速建立Subversion服務器,並且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套服務器環境,可以使用起來,這裏配套有動畫教程
本文是使用Subversion最快速的教程,在最短的時間裏幫助您建立起一套可用的服務器環境,只需略加調整就可以應用到實際項目當中。
本教程分爲以下幾個部門,不僅僅是快速入門,最後我們還有一些高級功能的說明,爲了說明簡單,教程是在windows下使用的方式,以方便資源有限的項目使用,對於UNIX環境下,區別並不大。

軟件下載

服務器和客戶端安裝

建立版本庫(Repository)

配置用戶和權限

運行獨立服務器

初始化導入

基本客戶端操作

1,軟件下載

下載Subversion服務器程序。

官方網站的下載二進制安裝文件,來到二進制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇" this directory ",這樣我們可以看到許多下載的內容,目前可以下載 svn-1.4.0-setup.exe

下載Subversion的Windows客戶端TortoiseSVN。

TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之後Windows就可以識別Subversion的工作目錄。
官方網站是TortoiseSVN ,下載方式和前面的svn服務器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝文件爲TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi

2,服務器和客戶端安裝

服務器安裝,直接運行svn-1.4.0-setup.exe ,根據提示安裝即可,這樣我們就有了一套服務器可以運行的環境。

安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按 照提示安裝即可,不過最後完成後會提示是否重啓,其實重啓只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這裏爲了立刻看 到好的效果,還是重新啓動機器。若是不習慣英文還可以選擇安裝客戶端語言漢化包“LanguagePack-1.4.5.10425-win32- zh_CN.exe”(也需下載),安裝後默認還是英文,需要在客戶端工具中設置一下。

此外,在編譯器中也可以使用SVN插件來代替客戶端工具,使開發起來更加方便。詳細介紹請見Eclipse中SVN版本控制插件的安裝和使用

3,建立版本庫(Repository)

運行Subversion服務器需要首先要建立一個版本庫(Repository),可以看作服務器上存放數據的數據庫,在安裝了Subversion服務器之後,可以直接運行,如:

svnadmin create E:/svndemo/repository

就會在目錄E:/svndemo/repository下創建一個版本庫。

我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:/svndemo/repository下"右鍵->TortoiseSVN->Create Repository here...“, 然後可以選擇版本庫模式, 這裏使用默認即可, 然後就創建了一系列目錄和文件。


4,配置用戶和權限

svn的權限管理涉及到一下文件:
passwd文件   --   /conf目錄下   用於存放本svn庫的用戶名和密碼,用 = 分割,左邊是用戶名,右邊是密碼(明文)。
authz   --   /conf目錄下   用於存放本svn庫的訪問授權信息。
svnserve.conf   -- /conf目錄下   用於存放本svn庫的全局訪問控制信息。

來到E:/svndemo/repository/conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改爲:
[general]
password-db = passwd 然後修改同目錄的passwd文件(設置用戶密碼),去掉下面三行的註釋再加兩個用戶:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
svnadmin = admin
zgz = zgz0809
最後修改同目錄的authz文件,它定義了兩部分的內容:
1,對組成員的定義,
2,對目錄的授權定義,
可以針對一個單一用戶授權,也可以針對在[groups]裏面定義的一個組授權,還可以用*通配符來對所有的用戶授權,
授權的選項有:只讀訪問('r'),讀寫訪問('rw'),或者無權防問('').
authz文件中可以對任意多個目錄進行權限控制,一下是一個例子:

[groups]
harry_and_sally = harry,sally
#設定權限組

[/]
svnadmin = rw

[/truck]
zgz = rw
harry = rw
sally = r
* = r

[/sanguo]
zgz = rw
harry = r
sally = rw
* = r

[/ts]
@harry_and_sally = rw
# 以@爲鍵值意味着對前面定義的組進行授權
* = r

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

用戶svnadmin權限最大,他可以進行根目錄(注意:是服務器目錄svn://localhost/,下邊會介紹的)下所有文件(包括子目錄下的文件)的讀寫操作,而/truck,/sanguo,/ts是在服務器的根目錄下創建的三個子目錄。
用戶zgz 和harry對 /truck具有讀寫權限,sally 只有讀的權限。
用戶zgz 和sally對 /sanguo具有讀寫權限,harry 只有讀的權限。
用戶harry 和sally對 /ts具有讀寫權限,zgz只有讀的權限。(* = r 表示所有用戶都具有讀的權限,當然zgz也就自然具有了。注意這裏 @harry_and_sally = rw 表示給harry_and_sally組所有用戶授權,該組在上邊[groups]標籤中已定義)

注意:如果用戶對一個目錄具有某種權限,那麼他對其子目錄也有同樣的權限(例如:svnadmin),所以在授權時要特別注意,儘量只付給滿足用戶需要的最小的權限。

 

5,運行獨立服務器

在任意目錄下運行:
svnserve -d -r E:/svndemo/repository 我們的服務器程序就已經啓動了。注意不要關閉命令行窗口,關閉窗口也會把svnserve停止。爲了方便,可以把svnserve作爲服務,在2000下控制檯窗口可以運行,創建服務命令:

sc.exe create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r E:/svndemo/repository" depend= tcpip
如果加錯了可以用:sc delete "SVNService" 命令刪除服務。
加好後可以在控制面板的服務選項中找到它,把它啓動類型設爲手動,然後啓動一下看看有沒有問題。


注意

1."D:/Subversion"是SVN服務器端的安裝路徑,"E:/svndemo/repository"是版本庫的路徑,視具體情況而定。
2. 等號前無空格後有空格。
3. 應使用參數“--service”而不是“-d”,參數前面的橫線不是一個是兩個。
4. binpath內套的路徑如果包含空格,也需要使用雙引號,此時需要使用轉義符表示內部的引號(/")。
5.使用“SVNService.exe”將SVN作爲Window服務運行(Subversion1.4之前版本也可使用)
SVNService.exe -install -d -r E:/svndemo/repository


6,初始化導入

來到我們想要導入的項目根目錄,在這個例子裏是E:/svndemo/wc1,目錄下有一個readme.txt文件:


右鍵->TortoiseSVN->Import...
URL of repository輸入“svn://localhost/” ,如果服務安裝在其他機器則將localhost改換爲目標機器的IP地址“svn://10.8.6.87/”。
ok
完成之後目錄沒有任何變化,如果沒有報錯,數據就已經全部導入到了我們剛纔定義的版本庫中。

需要注意的是,這一步操作可以完全在另一臺安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是 10.8.6.87,則URL部分輸入的內容就是“svn://10.8.6.87/”,一般爲了便於管理不會導入到服務的根目錄下,而是導入到工程的子 目錄,如/truck,/sanguo,/ts。導入的URL就添svn://localhost/truck。


7,基本客戶端操作

取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:/svndemo/wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改並提交:
打開readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以運行。

察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的文件和版本1的區別。功能挺強大,具體使用不做詳解。

 

相關資源
Subversion http://subversion.tigris.org/
TortoiseSVN http://tortoisesvn.net/downloads http://tortoisesvn.tigris.org/
Svn1ClickSetup http://svn1clicksetup.tigris.org/
Subclipse http://subclipse.tigris.org/
Subversion中文站 http://www.subversion.org.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章