使用SVN協(xié)議訪問倉庫方法揭秘
本節(jié)和大家一起學習一下使用SVN協(xié)議訪問倉庫的方法,主要包括建立倉庫,設置授權(quán)和訪問倉庫幾個步驟,希望通過本節(jié)的介紹大家能夠掌握使用SVN協(xié)議訪問倉庫的方法。
使用SVN協(xié)議訪問倉庫
1、創(chuàng)建倉庫
正如訪問本地倉庫一樣,開始必須先用svnadmin在存放倉庫的目錄中創(chuàng)建必須的文件,以形成倉庫。
在遠端,存放倉庫的機器行運行: # svnadmin create /var/svn/repos/
創(chuàng)建的文件和目錄有:
引用
# ll -a /var/svn/repos/
總計 36
drwxr-xr-x 7 root root 4096 07-01 15:21 .
drwxr-xr-x 3 root root 4096 07-01 11:00 ..
drwxr-xr-x 2 root root 4096 07-01 15:21 conf
drwxr-xr-x 2 root root 4096 07-01 15:21 dav
drwxr-sr-x 5 root root 4096 07-01 15:21 db
-r--r--r-- 1 root root 2 07-01 15:21 format
drwxr-xr-x 2 root root 4096 07-01 15:21 hooks
drwxr-xr-x 2 root root 4096 07-01 15:21 locks
-rw-r--r-- 1 root root 229 07-01 15:21 README.txt
一般不要手動去更新、刪除、添加上述這些目錄或文件的內(nèi)容,應通過svn客戶端來進行管理的工作。
2、設置授權(quán)
若通過svn協(xié)議訪問遠端的倉庫,必須建立授權(quán)關系。svnserve對于每個倉庫,都有一個獨立的配置文件和獨立的用戶、權(quán)限管理。該文件存放在:
引用
repository-path/conf/svnserve.conf
也就是對應在每個倉庫的目錄下面。使用svnadmin create創(chuàng)建倉庫后,就會在對應的位置創(chuàng)建一個示范文件。
以下是一個簡單的例子:
引用
# vi /var/svn/repos/conf/svnserve.conf
[general]
anon-access = read # 允許匿名用戶只讀訪問,若設置為none表示不允許匿名訪問
auth-access = write # 通過驗證的用戶可以讀和寫
password-db = passwd # 用戶保存文件,也可以使用絕對路徑來指定位置
authz-db = authz # 權(quán)限管理文件
realm = My First Repository # 倉庫名稱
可通過man svnserve.conf 獲取幫助信息。
※ 注意,配置項前面不能有前置空格,否則后續(xù)執(zhí)行svn命令時,會報Option expected錯誤
然后,在上面指定的用戶、權(quán)限配置文件中加入相關信息:
引用
# vi /var/svn/repos/conf/passwd
[users] # 這是固定格式
linuxing = redflag # linuxing是用戶名,redflag是明文表示的密碼
harry = harryssecret
SVN協(xié)議允許訪問該倉庫的用戶都可以在這文件中定義,而對應用戶的權(quán)限,則在權(quán)限配置文件中定義:
引用
# vi /var/svn/repos/conf/authz
[groups] # 這也是固定格式
users1 = linuxing,harry # 定義屬于組的用戶
# 可定義倉庫中的某個相對路徑,如[/],或[/project1]
# 若是多個倉庫共享一個權(quán)限文件,可以用倉庫名加“:”開頭來定義,如:[project2:/]
# 這個project2必須是已經(jīng)由svnadmin create /path/project2 創(chuàng)建好的倉庫
[/]
linuxing = rw # 定義某個用戶的權(quán)限,r是只讀、w是可寫、留空是不允許訪問
@users1 = rw # 定義某個組的權(quán)限
* = r # 用“*”號表示其他用戶
用戶和權(quán)限配置文件必須與svnserve.conf中設置的路徑相同。若把這兩個配置文件放在倉庫外,例如:/etc/svn/目錄,則允許多個倉庫共享同樣的配置文件。
用戶和權(quán)限配置文件保存后即可生效,不需重啟svnserve服務。下一步就可以使用SVN協(xié)議訪問倉庫了。#p#
3、訪問倉庫
在保證遠端svnd服務已經(jīng)啟動的情況下:
引用
# service svnd start
Starting svnd: [確定]
# service svnd status
svnserve (pid 21869) 正在運行...
# netstat -ln|grep 3690
tcp 0 0 :::3690 :::* LISTEN
參考前一篇日志的內(nèi)容,使用svn客戶端即可進行訪問:
引用
# svn import /root/perl svn://localhost/project1 -m 'initialization'
“root”的密碼:
認證領域:<svn://192.168.228.135:3690> My First Repository
用戶登錄名:linuxing
“linuxing”的密碼:
新增 /root/perl/tcp_socket_cli.pl
新增 /root/perl/connect.pl
新增 /root/perl/tcp_socket_dt_srv.pl
提交后的修訂版為 1。
# svn list svn://localhost/project1
connect.pl
tcp_socket_cli.pl
tcp_socket_dt_srv.pl
※ 注意:Linux下,默認會先以當前用戶去驗證,若用戶名不匹配,可在后續(xù)的提示中輸入指定的用戶名。輸入一次用戶名后,svn會把驗證結(jié)果保留在本地的~/.subversion/auth/svn.simple目錄中,下次使用svn時,就不需要再做驗證工作了。(除非修改了遠端的驗證用戶名和密碼)
Checkout到本地:
引用
# svn checkout svn://localhost/project1
A project1/tcp_socket_cli.pl
A project1/connect.pl
A project1/tcp_socket_dt_srv.pl
取出修訂版 1。
# cd project1/
# svn list
connect.pl
tcp_socket_cli.pl
tcp_socket_dt_srv.pl,本節(jié)關于通過svn協(xié)議訪問倉庫方法介紹到這里。
【編輯推薦】