如何快速建立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,出現一系列資訊表示安裝成功 ...