之前安裝過svn,今天在安裝時,居然搞了半天,還是覺得有必要記錄一下,主要是版本庫中的配置文件
1.安裝TortoiseSVN很簡單,百度上一大把文章,不會的可以搜下,主要說下配置文件
2.svn安裝好後,需要創建版本庫,兩種方式,第一種,手動創建,在需要的目錄下創建一個文件夾,然後鼠標右鍵選擇TortoiseSVN中的create repository here,會在文件夾下生成一些文件夾,conf,db,hooks,locks等,conf下有四個配置文件,後面會說怎麼配置。第二種方式,在cmd上使用命令svnadmin create D:/svn/repository創建版本庫,後面爲創建的版本庫。注:建立版本庫的路徑中的文件,文件名不能有空格,否則會建立不成功的。
3.配置用戶和權限(設置配置時,等號前後需要有空格,否則會報錯)
A.首先配置svnserve.conf
在D:/svn/repository/conf(這是我當時創建的版本庫路徑,具體根據自己實際創建的)打開svnserve.conf
[general]
anon-access = none //未驗證用戶無任何權限 ,如果這裏不改,用戶不用輸入密碼即可獲得代碼版本。
auth-access = write //已驗證用戶給予寫權限
password-db = passwd //密碼數據存放到passwd文件中
authz-db = authz //指定用戶保存路徑爲authz文件,這個需要有,不然配置未驗證用戶無任何權限,無法連接svn服務器,報authentication failed錯誤,即無權限。啓動服務器後需要,需重啓服務器。
注:可以將上面的內容複製到svnserve.conf尾部,也可在svnserve.conf中,將上面項前面的#去掉即可,其中可以寫成anon-access=read,表示無驗證用戶有讀的權限。去掉#前面不能有空格,後面也不能有空格,否則會報錯。修改svnserve.conf需要重啓svn服務器。
B.配置passwd文件
原來配置:
[users]
#harry = harryssecret
#sally = sallyssecret
“=”號前面是用戶名,後面是密碼。
[users]
zhangsan = 123456 //賬戶 = 密碼 (例如)
C.配置authz文件(權限文件)
需要配置兩處,一個是組和用戶的設置,另一個是版本庫的目錄格式配置以及權限分配。
a.組和用戶配置。
(1)一個組group可以包含一個和多個用戶,其中用戶名必須在用戶配置文件中已經定義。
(2)可以將指定具體組,比如開發組和運維組等。
b.版本庫配置以及權限分配。
版本庫目錄格式爲 :
[版本庫:/項目/目錄]
用戶名 = 權限
@組名 = 權限
說明:
(1)權限,分爲r,w,rw和空。空代表沒有任何權限
(2)版本庫目錄多種寫法,如果只寫根/代表對這個項目以及下邊所有目錄都有權限,如果單獨制定目錄,可以加上具體目錄名。
其中根是svn啓動的時候我們指定的-r指定的版本庫。
舉例如下:
[/] 代表根目錄下的資源都可以訪問
[repo0:/] 代表對repo0所有版本庫設置權限權限
[repo0:/21yunwei] 代表對repo0版本庫下的21yunwei項目設置權限
[repo0:/21yunwei/demo] 代表對repo0版本庫下的21yunwei項目的demo目錄設置權限
21yunwei = r #代表admin對上面的目錄(根目錄下)的資源只有讀權限
4.TortoiseSVN Repository Brower :url 中輸入svn://127.0.0.1,再輸入賬戶密碼,也可訪問。
5.自動啓動svn服務器
cmd輸入以下命令:
sc create SVNservice binpath= "D:/Program Files/TortoiseSVN/bin/svnserve.exe --service -r D:\svn\repository" displayname= "SVNservice" depend= Tcpip start= auto
解釋:SVNservice 爲服務的名稱。所有的系統服務可以在dos下通過命令手動啓動和停止。
啓動:net start SVNservice 停止:net stop SVNservice
binpath爲安裝subversion的路徑,可執行文件的路徑。
D:\svn\repository爲版本庫的路徑。
displayname= "SVNservice"爲註冊成的系統服務顯示名稱,註冊成功後,可以在系統服務中找到這個名稱。
depend= Tcpip爲依賴Tcpip協議。
start= auto爲註冊成的系統服務啓動類型爲自動。
刪除服務:sc delete SVNservice
6.svn報authentication failed錯誤,就是authz權限沒配置對,或者是svnserve.conf文件修改了,沒有重新啓動。