SVN版本控制器的安裝和配置

2021-07-02 14:49:41 字數 4233 閱讀 7357

如何快速建立subversion伺服器,並且在專案中使用起來,這是大家最關心的問題,與cvs相比,subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套伺服器環境,可以使用起來,這裡配套有動畫教程

。 本文是使用subversion最快速的教程,在最短的時間裡幫助您建立起一套可用的伺服器環境,只需略加調整就可以應用到實際專案當中。 

本教程分為以下幾個部門,不僅僅是快速入門,最後我們還有一些高階功能的說明,為了說明簡單,教程是在windows下使用的方式,以方便資源有限的專案使用,對於unix環境下,區別並不大。

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

安裝tortoisesvn,同樣直接執行tortoisesvn-1.4.0.7501-win32-svn-1.4.0.msi

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

執行subversion伺服器需要首先要建立乙個版本庫(repository),可以看作伺服器上存放資料的資料庫,在安裝了subversion伺服器之後,可以直接執行,如:

svnadmin create e:\svndemo\repository
就會在目錄e:\svndemo\repository下建立乙個版本庫。

我們也可以使用tortoisesvn圖形化的完成這一步:

在目錄e:\svndemo\repository下"右鍵->tortoisesvn->create repository here...「, 然後可以選擇版本庫模式, 這裡使用預設即可, 然後就建立了一系列目錄和檔案。

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),所以在授權時要特別注意,盡量只付給滿足使用者需要的最小的許可權。

在任意目錄下執行:

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

來到我們想要匯入的專案根目錄,在這個例子裡是e:\svndemo\wc1,目錄下有乙個readme.txt檔案:

右鍵->tortoisesvn->import...

url of repository輸入「svn://localhost/」 ,如果服務安裝在其他機器則將localhost改換為目標機器的ip位址「svn:

ok 完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部匯入到了我們剛才定義的版本庫中。

需要注意的是,這一步操作可以完全在另一台安裝了tortoisesvn的主機上進行。例如執行svnserve的主機的ip是 10.8.6.87,則url部分輸入的內容就是「svn:一般為了便於管理不會匯入到服務的根目錄下,而是匯入到工程的子 目錄,如/truck,/sanguo,/ts。匯入的url就添svn://localhost/truck。

取出版本庫到乙個工作拷貝:

來到任意空目錄下,在本例中是e:\svndemo\wc1,執行右鍵->checkout,在url of repository中輸入svn://localhost/,這樣我們就得到了乙份工作拷貝。

在工作拷貝中作出修改並提交:

開啟readme.txt,作出修改,然後右鍵->commit...,這樣我們就把修改提交到了版本庫,我們可以執行。

察看所作的修改:

readme.txt上右鍵->tortoisesvn->show log,這樣我們就可以看到我們對這個檔案所有的提交。在版本1上右鍵->compare with working copy,我們可以比較工作拷貝的檔案和版本1的區別。功能挺強大,具體使用不做詳解。

相關資源

subversion

tortoisesvn

svn1clicksetup

subclipse

subversion中文站

安裝SVN版本控制器

早就想給自己做乙個版本控制系統.但是一直沒去做.最近程式改得多了.原來都是放在資料夾裡分類管理.標上更改日期.看得連自己都煩了.備份的時候還要打包.鬱悶.於是就花了點時間.在vm上建立乙個svn.哎.這回應該能省不少事了吧.開始時準備裝cvs.紅旗自帶1.11.0版本的.直接用就行.昨天是在網上參考...

SVN版本控制器(一)

介紹 svn,subversion,開源的版本控制系統,可以將資料恢復到早期版本,或者檢查資料修改的歷史,這些資料可以是源 也可以是其他型別的檔案。適用多人共同開發專案。功能 1 根據檔案修改的次數自動增加版本號以便找回歷史檔案 2 防止多人開發時同時修改一類檔案導致檔案覆蓋或被刪除 安裝 1 伺服...

svn版本控制器的搭建

svn是開發人員同時開發專案時 匯入匯出,衝突等問題subversion,visualsvn server 3.6.4 x64,屬於服務端 tortoisesvn屬於客戶端 安裝subversion,傻瓜式安裝即可,自動配置系統環境變數,控制台用 svn version,出現一系列資訊表示安裝成功 ...