天天看點

将本地項目納入到本地SVN管理 1,軟體下載下傳 2,伺服器和用戶端安裝 3,建立版本庫(Repository) 4,配置使用者和權限 5,運作獨立伺服器 6,初始化導入 7,基本用戶端操作

如何快速建立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的差別。功能挺強大,具體使用不做詳解。

繼續閱讀